編輯:關於Android編程
之前跟大家介紹一個Alibaba的框架dexposed框架,此框架能夠動態的從線上完成一些補丁的工作。但是,由於它的性能和兼容性(不支持ART)所以,很多朋友都決定不再研究此框架。
今天,這裡我再次給大家介紹一個Alibaba的開源框架——AndFix。和Dexposed一樣,此框架一樣是為了能夠在線的打補丁。即發現了bug之後,通過線上補丁修復本地的邏輯代碼的工具庫。
原理與Dexposed類似,這裡我們不做詳解,如果不清楚的童鞋,可以看我的另兩篇文章:
http://blog.csdn.net/yzzst/article/details/47954479
http://blog.csdn.net/yzzst/article/details/47659987
如果你要問我,為什麼alibaba內部團隊要做兩個差不多的東西?
我只能回答,如果你也在大公司干過,你應該知道有一種悲哀叫——KPI。
AndFix的Github地址:https://github.com/alibaba/AndFix
如何使用?
筆者翻譯的官方文檔,如下:
AndFix是一個Android App的在線熱補丁框架。使用此框架,我們能夠在不重復發版的情況下,在線修改App中的Bug。AndFix就是 “Android Hot-Fix”的縮寫。
就目前來說,AndFix支持Android 2.3到6.0版本,並且支持arm 與 X86系統架構的設備。完美支持Dalvik與ART的Runtime。
AndFix 的補丁文件是以 .apatch 結尾的文件。
AndFix的原理很簡單。就是針對項目中原有方法的替換取代工作:
而我們打一個在線的補丁包,也就有了如下的步驟邏輯:
直接添加 AndFix aar 到項目中的 編譯依賴庫中。
maven 依賴:
com.alipay.euler
andfix
0.3.0
aar
或者是Gradle依賴:
dependencies {
compile 'com.alipay.euler:andfix:0.3.0@aar'
}
1 . 初始化PatchManager:
patchManager = new PatchManager(context);
patchManager.init(appversion);//current version
2 . 載入補丁包
越早的載入補丁包越好,通常來說,我們一般都會在自定義的Application中的onCreate方法裡面載入補丁包。即:
patchManager.loadPatch();
3 . 添加補丁包
新的補丁包,下載後調用addPatch方法添加補丁。這個補丁會立即生效。
patchManager.addPatch(path);//path of the patch file that be downloaded
確保一些class文件在使用的時候不被proguard所混淆,當然,proguard的混淆配置如下所示:
原生method
com.euler.cloudfix.CloudFix
annotation
com.euler.cloudfix.annotation.MethodReplace
-keep class * extends java.lang.annotation.Annotation
-keepclasseswithmembernames class * {
native ;
}
別以為補丁就是我們直接開發一個apk就好了,制作補丁是需要專門的工具的。這裡有一個工具,叫做 apkpatch的工具,用來制作AndFix的補丁。
地址:https://github.com/alibaba/AndFix/raw/master/tools/apkpatch.zip
生成.apatch 文件
usage: apkpatch -f -t -o
old Apk file path.
merge .apatch 文件
usage: apkpatch -m -k -p <***> -a -e <***>
-a,--alias alias.
-e,--epassword <***> entry password.
-k,--keystore keystore path.
-m,--merge path of .apatch files.
-n,--name patch name.
-o,--out
最近忙著項目,很久沒有總結提交博客和提交github了。接下來我打算整理下項目中用到的比較有用的發表到博客上。也打算總結一些關於設計模式和源碼分析的博客。今天的話就先來講
在itools新出的安卓模擬器裡,我們見到了很多亮點,比如DIY按鍵,一鍵隱藏,共享文件,賬號多開,甚至是手機才可以用的旋轉屏幕,那麼在itools安卓模擬
原文地址:http://android.xsoftlab.net/training/transitions/index.html引言Activity所呈現的UI經常會由用
在Android裡面,一些炫酷的動畫確實是很吸引人的地方,讓然看了就賞心悅目,一個好看的動畫可能會提高用戶對軟件的使用率。另外說到動畫,在Android裡面支持兩種動畫: