作者:郭少雷
搞android搞了幾年也沒搞出個啥牛逼app出來,眼看時下最火的app微信如此火熱,實在想搞搞它,索性就想著給它加點東西進去。
以下內容純屬本人個人愛好,僅限個人學習android用途以及對android的深入了解。
首先我們得想一想加點什么東西在微信里面,這里簡單做個體驗,加一個推送sdk至微信最新(6.5.7)apk包中,并由服務端控制向其推送消息。以下步驟依次講解加入流程
1.申請推送平臺
這里以個推為例并下載Getui_SDK;新建一Android Studio工程,包名同微信包名保持一致(com.tencent.mm),新建一PushActivity用于獲取啟動個推SDK的smali代碼片段。依據個推sdk創建相應DemoIntentService和DemoPushService;
2.獲取資源文件
生成工程apk后使用ApkTool反編譯生成好的apk后得到以下smali代碼及資源文件。反編譯apk文件
命令:
apktool d <file.apk> <dir>
得到所有資源及代碼文件。
進入smali目錄獲取到PushActivity.smali中啟動個推代碼片段:
3.反編譯
使用ApkTool反編譯微信apk得到微信資源及smali代碼:
4.定位onCreate方法
查看微信資源AndroidManifext.xml中啟動Launcher的Activity為LauncherUI,打開LauncherUI.smali文件并找到onCreate方法:
在該方法最后加入啟動個推smali代碼,并將PushActivity改為Launcher所在位置后保存:
5.加入個推服務
保存個推用到的資源文件到微信目錄后修改微信AndroidManifest.xml加入個推服務:
6.回編apk文件
命令:
apktool b <dir>
使用apk回編命令對微信資源目錄進行回編后得到新的微信apk;安裝啟動后即可由個推服務端對客戶端進行Push消息推送。