欢迎Follow我的GitHub, 关注我的CSDN.

我会介绍关于Android的一些有趣的小知识点. 上一篇.


1. Dagger2的开发顺序

Module -> Component -> Application

首先模块(Module)创建须要提供的类实例, 其次把模块加入到组件(Component)中并提供须要注入的类, 最后把组件加入到应用(Application)中并提供接口.

// 模块
@Module
public class TestAppModule {
private final Context mContext; public TestAppModule(Context context) {
mContext = context.getApplicationContext();
} // 提供类实例
@AppScope
@Provides
public Context provideAppContext() {
return mContext;
} @Provides
public WeatherApiClient provideWeatherApiClient() {
return new MockWeatherApiClient();
}
} // 组件
@AppScope
@Component(modules = TestAppModule.class) // 注冊模块
public interface TestAppComponent extends AppComponent {
void inject(MainActivityTest test);
} // 应用
public class TestWeatherApplication extends WeatherApplication {
private TestAppComponent mTestAppComponent; @Override public void onCreate() {
super.onCreate();
mTestAppComponent = DaggerTestAppComponent.builder()
.testAppModule(new TestAppModule(this))
.build();
} // 提供组件
@Override
public TestAppComponent getAppComponent() {
return mTestAppComponent;
}
}

2. JRebel

Android调试工具, 不用编译, 就能够刷新一些项目改动. 只是功能已经被Android Studio 2.0 取代, 等待2.0正式发版.


3. 数据绑定(DataBinding)

DataBinding实现数据与页面的分离, 更符合面向对象的编程模式.

布局设置

    <data>
<variable
name="weatherData"
type="clwang.chunyu.me.wcl_espresso_dagger_demo.data.WeatherData"/>
</data> <TextView
android:id="@+id/temperature"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_marginBottom="@dimen/margin_large"
android:layout_marginTop="@dimen/margin_xlarge"
android:text="@{weatherData.temperatureCelsius}"
android:textAppearance="@style/TextAppearance.AppCompat.Display3"
tools:text="10°"/>

逻辑设置

private ActivityMainBinding mBinding; // 页面绑定类
mBinding = DataBindingUtil.setContentView(this, R.layout.activity_main); // 绑定页面
mBinding.weatherLayout.setVisibility(View.VISIBLE); // 使用Id
mBinding.setWeatherData(weatherData); // 绑定数据

4. ClassyShark

查看Apk信息的软件, 功能很强大, 省去反编译的步骤, 主要功能:

(1) 在MultiDex中dex的具体信息.

(2) 使用NativeLibrary的具体信息.

(3) 类的具体信息.

(4) 数量统计.


5. CocoaPod安装

升级Mac系统, 可能会导致Pod命令消失, 须要又一次安装Pod.

sudo gem install -n /usr/local/bin cocoapods

6. LaunchMode

LaunchMode包括四种模式,

(1) standard, 标准模式, 启动又一次创建演示样例, 默认.

(2) singleTop, 栈顶复用模式, 位于栈顶, 启动不会被创建, 调用onNewIntent.

(3) singleTask, 栈内复用模式, 存在不会被创建, 调用onNewIntent.

(4) singleInstance, 单实例模式, 单独位于一个任务栈内, 复用.


7. TextView的标准字体

样式

style="@style/TextAppearance.AppCompat.Display4"
style="@style/TextAppearance.AppCompat.Display3"
style="@style/TextAppearance.AppCompat.Display2"
style="@style/TextAppearance.AppCompat.Display1"
style="@style/TextAppearance.AppCompat.Headline"
style="@style/TextAppearance.AppCompat.Title"
style="@style/TextAppearance.AppCompat.Subhead"
style="@style/TextAppearance.AppCompat.Body2"
style="@style/TextAppearance.AppCompat.Body1"
style="@style/TextAppearance.AppCompat.Caption"
style="@style/TextAppearance.AppCompat.Button"

显示


8. 自己主动生成DbHelper的脚本

下载地址

安装Jinja2.

pip install Jinja2

设置数据

CLASS Repo
String Id
String Name
String Description
String Owner
ENDCLASS

下载代码库. 生成代码.

python sql_lite_helper.py -f ~/Desktop/Repo -n SampleGenerate -p me.chunyu -a clwang

9. Gson的序列化參数

有些情况下, Json名称与变量不同, 须要指定.

@SerializedName("avatar_url") private String avatarUrl;

10. Proguard保留库

最简洁的方式是所有保留. 去除警告dontwarn, 保留类keep class.

# 在线更新
-dontwarn clwang.chunyu.me.**
-keep class clwang.chunyu.me.**{*;}

OK, That’s all! Enjoy It!

Android开发Tips(2)的更多相关文章

  1. Android开发Tips(5)

    欢迎Follow我的GitHub, 关注我的CSDN. 介绍关于Android的一些有趣的小知识点. 本文是第五篇了, 差点儿一周一篇, 欢迎阅读. 其余第一篇, 第二篇, 第三篇, 第四篇. 1. ...

  2. Android开发Tips(3)

    欢迎Follow我的GitHub, 关注我的CSDN. 我会介绍关于Android的一些有趣的小知识点. 本文是第三篇, 其余第一篇, 第二篇. imageMogr2/auto-orient/stri ...

  3. [Android开发Tips]Bean的定义

    Bean: public class Data extends BaseBean { public ArrayList<DataItem> data = new ArrayList< ...

  4. Android开发环境的演变

    之前安装过eclipse,给我的感觉是,好生麻烦.刚开始自己装花了好多时间.隐约还记得有两个小tips: 1)打开时出现 “failed to load the JNI shared library ...

  5. Android开发学习---使用Intelij idea 13.1 进行android 开发

    1.为什么放弃eclipse?太卡!! 实在受不了eclipse的卡了,运行WEB项目还好,但android开发实在太慢,太慢!经常卡死,CPU经常被占满! 看网上很多人都说比Intelij idea ...

  6. 推荐一些顶级的Android开发书籍(转)

    本帖对Android开发菜鸟和中级老兵同样适用,因为本帖重点列出了那些最常用的Android开发资源. 推荐书籍 你或许觉得,都现在了,再去看个什么书来学习Android开发,这方法应该早就过时了.没 ...

  7. Android开发环境--eclipse和Android Studio

    一.eclipse下载.安装.配置 因为eclipse是之前就下载过的,现在只能大概说一下eclipse的下载安装过程. 1.下载jdk,配置java环境变量  (1)在官网(http://www.o ...

  8. [Xamarin.Android] ActionBar Tips

    [Xamarin.Android] ActionBar Tips ActionBar用途 快速搞懂 ActionBar的用途,可以参考下列文章: [Android]使用 ActionBarCompat ...

  9. [Xamarin.Android] Fragment Tips

    [Xamarin.Android] Fragment Tips Fragment用途 快速搞懂 Fragment的用途,可以参考下列文章: Android Fragment 使用心得 Android ...

随机推荐

  1. Python实现队列

    队列的数据结构的主要结构:一个结点类和两个方法:出队列和进队列 class Node(object): def __init__(self,val): self.val = val self.next ...

  2. 阿里云服务器ubuntu安装java运行环境

    服务器 阿里云服务器ubuntu安装java运行环境 转:http://www.codingyun.com/article/45.html 今天来给大家介绍一下在阿里云ubuntu服务器下安装java ...

  3. 静态页面之间的转发与json与ajax做到动态数据

    我们见过很多使用jsp ,php,asp的动态网页技术的网站了,我们知道如果一个网站内容更新频率极低,而内容量不是十分庞大时,这样的网站(一次开发完成后不会需要较多的维护成本)的完全可以使用全部使用静 ...

  4. npoi导出excel 导出List<T>

    using System.Collections.Generic; using NPOI.HSSF.UserModel; using NPOI.SS.UserModel; using NPOI.XSS ...

  5. 小Z爱序列(NOIP信(sang)心(bin)赛)From FallDream(粗制单调队列&单调栈的算法解析)

    原题: 小Z最擅长解决序列问题啦,什么最长公共上升然后下降然后上升的子序列,小Z都是轻松解决的呢. 但是小Z不擅长出序列问题啊,所以它给了你一道签到题. 给定一个n个数的序列ai,你要求出满足下述条件 ...

  6. VC版本与VS版本 对照表

    Microsoft Visual Studio 6.0                  VC6.0 Microsoft Visual Studio .NET 2002:          VC7.0 ...

  7. java基础练习 13

    import java.util.Scanner; public class Thirtheen { /*输入某年某月某日,判断这一天是这一年的第几天?*/ public static void ma ...

  8. css之其它技巧和经验列表

    其它技巧和经验列表(*以下实例默认运行环境都为Standard mode): 如何让层在falsh上显示? 方法: ``` 设置flash的wmode值为transparent或opaque ``` ...

  9. Fiddler抓包9-保存会话(save)【转载】

    本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/fiddler/ 前言 为什么要保存会话呢?举个很简单的场景,你在上海测试某个功能接口的 ...

  10. JAVA SERVLET上传文件的样码

    import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import j ...