Android App 不死之路續(xù)篇

自從前兩周寫了《android app不死之路》這篇文件以后,不少朋友發(fā)信息或者留言,希望能有一份源碼和可以直接運行的demo,因為最近工作上的事比較忙,到今天才整理了一下。

demo和源碼的地址:

https://github.com/devxiaobai/android_daemon_process

測試驗證

baiyingjundeMacBook-Pro:Downloads baiyingjun$ adb shell ps | grep "com.aimfaraway.process"
u0_a56    2231  116   832732 18224 ffffffff 401434a0 S com.aimfaraway.process
u0_a56    2255  1     752    76    c05568d8 40035ebc S /data/data/com.aimfaraway.process/chkproc
baiyingjundeMacBook-Pro:Downloads baiyingjun$ adb shell kill -9 2231
baiyingjundeMacBook-Pro:Downloads baiyingjun$ adb shell ps | grep "com.aimfaraway.process"
u0_a56    2255  1     752    188   c05568d8 40035ebc S /data/data/com.aimfaraway.process/chkproc
u0_a56    2321  116   850344 25328 ffffffff 4014460c S com.aimfaraway.process
baiyingjundeMacBook-Pro:Downloads baiyingjun$ 

守護進程的編譯

這個守護是可獨立運行的程序,而不是動態(tài)庫。Android.mk中使用include $(BUILD_EXECUTABLE) 替代編譯so 文件的include $(BUILD_SHARED_LIBRARY)語句。

為了通過android L的PIE安全機制校驗,android.mk中添加

LOCAL_CFLAGS += -pie -fPIE
LOCAL_LDFLAGS += -pie -fPIE

adb push 到android設備上,chmod 加執(zhí)行權限,測試運行之。

am命令啟動app

am命令詳細用法請自行搜索。

am startservice service_name 啟動一個service

am start -n package/activity_name 開啟一個Activity

由于Android 5.0之后禁止了隱式聲明Intent來啟動Service,所以只能曲線救國,demo中先開啟一個Activity ,在Activity的實現(xiàn)里startService。

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容