Arouter原理
路由框架會在項目的編譯期通過注解處理器apt掃描所有添加@Route注解的Activity類,然后將Route注解中的path地址和Activity.class文件映射關(guān)系保存到它自己生成的java文件中,只要拿到了映射關(guān)系便能拿到Activity.class。
apt是在編譯期對代碼中指定的注解進(jìn)行解析,然后做一些其他處理(如通過javapoet生成新的Java文件)。我們常用的ButterKnife,其原理就是通過注解處理器在編譯期掃描代碼中加入的@BindView、@OnClick等注解進(jìn)行掃描處理,然后生成XXX_ViewBinding類,實現(xiàn)了view的綁定。javapoet是用來生成java文件的一個library,它提供了簡便的api供你去生成一個java文件。
pushcore
最近發(fā)現(xiàn)公司的項目出現(xiàn)個pushcore進(jìn)程,看了一下代碼,因為是在Androidmanifest加了android:process,這個配制的作用如下
android:process:是否需要在單獨的進(jìn)程中運(yùn)行,當(dāng)設(shè)置為android:process=”:remote”時,代表Service在單獨的進(jìn)程中運(yùn)行。注意“:”很重要,它的意思是指要在當(dāng)前進(jìn)程名稱前面附加上當(dāng)前的包名,所以“remote”和”:remote”不是同一個意思,前者的進(jìn)程名稱為:remote,而后者的進(jìn)程名稱為:App-packageName:remote