目录:andorid jar/库源码解析 Dagger.Dagger2: 作用: 1.用于解耦Activity和业务逻辑 2.在使用业务的时候,不需要重复编写new代码. 3.当业务变化的时候,不需要对所有的UI,进行修改. 4.便于测试,和正式,替换指定Module即可. 栗子: 需要: 1.定义 CommonComponent 的接口 标记 @Component(modules = XXXModule.class) 的注解 2.定义XXXModule 模块,并标注  @Module 的注解…
目录:andorid jar/库源码解析 Bolts: 作用: 用于链式执行跨线程代码,且传递数据 栗子: Task.call(new Callable<Boolean>() { @Override public Boolean call() throws Exception { return true; } }, Task.UI_THREAD_EXECUTOR); Task.callInBackground(new Callable<Boolean>() { @Override…
目录:andorid jar/库源码解析 EventBus: 作用: 用于不同Activity,Service等之间传递消息(数据). 栗子: A页面:onCreate定义   EventBus.getDefault().register(this); onDestroy定义 EventBus.getDefault().unregister(this); 添加public方法,一个Object参数(所有继承与Object的对象),用于接收消息通知. B页面:使用  EventBus.getDef…
目录:andorid jar/库源码解析 Okhttp3: 作用: 用于网络编程(http,https)的快速开发. 栗子: // okHttpClient定义成全局静态,或者单例,不然重复new可能导致连接数耗尽 OkHttpClient okHttpClient = new OkHttpClient(); String url = "https://www.test.com"; byte[] data = new byte[] { 1 }; okhttp3.RequestBody…
目录:andorid jar/库源码解析 Okio: 作用: 说白了,就是一个IO库,基于java原生io.来进行操作,内部做了优化,简洁,高效.所以受到了一部分人的喜欢和使用 栗子: 读写文件. private void ReadFile() { try { InputStream in = new FileInputStream(new File("/sdcard/a.txt")); // new ByteArrayInputStream(("adasfdsaf"…
目录:andorid jar/库源码解析 Retrofit2: 作用: 通过封装okhttp库,来进行web通讯,并且使用动态代理的方式,来调用接口地址,通过回调赋值结果. 栗子: 定义一个接口,用于访问使用. public interface IServiceApi { @FormUrlEncoded @POST("login") Call<LoginResult> login(@Field("name") String name, @Field(&q…
目录:andorid jar/库源码解析 Butterknife: 作用: 用于初始化界面控件,控件方法,通过注释进行绑定控件和控件方法 栗子: public class MainActivity extends AppCompatActivity { @BindView(R.id.btnTest1) Button btnTest1; @BindView(R.id.btnTest2) Button btnTest2; @BindView(R.id.lblMsg) TextView lblMsg;…
目录:andorid jar/库源码解析 Zxing: 作用: 生成和识别,二维码,条形码. 栗子: 生成二维码,赋值到ImageView上 QRCodeWriter qrCodeWriter = new QRCodeWriter(); Map<EncodeHintType, String> hints = new HashMap<>(); hints.put(EncodeHintType.CHARACTER_SET, "utf-8"); //记得要自定义长宽…
目录:andorid jar/库源码解析 错误: 错误1: Error: Static interface methods are only supported starting with Android N (--min-api 24) 错误原因:这是因为java8才支持静态接口方法的原因 解决办法:可以通过在app的build.gradle文件中配置使用java8编译 *.gradle android { ... compileOptions { sourceCompatibility Ja…
前言 本篇作为开篇,会大体上说明,需要解读源码的,类库,或者jar. 序 原本,类库和jar的系列准备写到逆向系列课程的,但是那个东西,在写了两篇,就没有后续了,现在也不知道从哪里开始了, 只能等后期想好了,再开篇单独写吧. 目录: EventBus.Dagger/Dagger2.okhttp3.Okio.retrofit2.butterknife.zxing.Bolts.RxJava,AndroidAPT自动生产代码 org.apache.commons.codec.org.apache.co…