導航:首頁 > 操作系統 > android開機啟動apk

android開機啟動apk

發布時間:2023-09-04 13:51:06

1. android App安裝以及啟動流程

Android App的安裝可以分為有界面的安裝和無界面的安裝。

有界面的安裝其實就是調用系統App(PackageInstaller)咐碼去安裝apk,打開安裝apk應用之後,點擊安裝按鈕執行startInstall方法,然後就進入安裝中界面開始安裝,安裝成功或者衡族哪失敗都會有對應的回調。內部其實也是使用PackageManager的installExistingPackage方法,通過binder機制,調用到PackageManagerService的installExistingPackage方法,最終調用到installExistingPackageAsUser方法安裝,而 安裝的核心原理其實就是將apk文件拷貝到系統可識別的重要的文件目錄

無界面安裝是調用adb命令,執行到一個c寫的commandline腳本,調用 install_app 方法,然後再調用 pm_command ,然後執行到pm腳本,執行 run 方法,調用 runinstall ,然後調用 installPackageAsUser 通過AMS執行安裝。

說到App的啟動,就需要從穗則開機開始說起,Android開機會先把所有應用安裝一遍就是把apk拷貝到對應的目錄(這也是Android開機慢的原因)。

整個流程如下:

其實App的啟動,除了剛開機是不一樣之外,正常時候基本與Activity的啟動非常接近。

2. android怎麼設置開機啟動軟體

Android系統通過應用程序自行在系統中登記注冊事件(即Intent)來響應系統產生的各類消息。
例如Android實現系統開機自啟動程需要在Manifest中加入如下Intent-filter及許可權Uses-permission即可。
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
(修改時候主要是去掉上面該行即可)
<category android:name="android.intent.category.HOME" />
</intent-filter>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
(修改時候主要是去掉上面該行即可) Android系統為應用程序管理功能提供了大量的API,可以通過API控制Intent和permission,其中
上述配置表示應用程序會響應系統產生的android.intent.action.BOOT_COMPLETED(系統啟動完成)信號,以此來實現應用程序自啟動。當然知道上述原理後,我們就可以隨心所欲的控製程序開機自啟動了。具體思路如下:

一、手工方法
基於上述原理,我們可以通過對系統中已安裝的程序去除其Manifest的上述配置片段來控制應用程序的對系統的響應,當然沒源碼可修改編譯的情況下只能實現屏蔽其對有些信號的響應,例如屏蔽該程序不再開機自啟動。手工方法就是利用有關工具直接在解壓其APK包後,修改其Manifest的上述配置行後再打包成APK,最後安裝到系統中就實現了屏蔽其自啟動功能。具體相關的工具軟體主要有APKTOOL。(請自己放狗去搜索下載)

二、編程實現

當然手工方法需要藉助APKTOOL等工具,步驟比較法繁瑣,我們可以通過自己開發來實現該功能。幸好
1、PackageManager
本類API是對所有基於載入信息的數據結構的封裝,包括以下功能:
·安裝,卸載應用
·查詢permission相關信息
·查詢Application相關信息(application,activity,receiver,service,provider及相應屬性等)
·查詢已安裝應用
·增加,刪除permission
·清除用戶數據、緩存,代碼段等
非查詢相關的API需要特定的許可權,具體的API請參考SDK文檔。

2、ActivityManager相關
本類API是對運行時管理功能和運行時數據結構的封裝,包括以下功能
·激活/去激活activity
·注冊/取消注冊動態接受intent
·發送/取消發送intent
·activity生命周期管理(暫停,恢復,停止,銷毀等)
·activity task管理(前台->後台,後台->前台,最近task查詢,運行時task查詢)
·激活/去激活service
·激活/去激活provider等
task管理相關API需要特定的許可權,具體API可參考SDK文檔。

3. android 啟動apk源碼在哪個目錄下

首先打開Android Studio安卓Apps開發工具。

選擇單擊工具欄Android SDK Manager圖標

彈出settings對話框,單擊launch Standalone SDK Manager 即啟動獨立的SDK Manager 程序。

彈出Android SDK Manager程序主界面。

選擇下載安裝Sources for Android SDK;

使用Android Studio就可以查看Android源碼文件了。

4. Android App 開機自啟動

<article class="_2rhmJa">

Android 設備開機自啟動的可以用廣播實現,因為 Android 設備開機時會發送一條開機廣播 "android.intent.action.BOOT_COMPLETED"。接收後實現啟動就完成了。

接下來是准備工作

如果按照上面的全部步驟後操作後,重啟沒有自動啟動程序,怎麼辦呢?是怎麼回事呢?

*那麼首先請檢查一下你的手機是不是安裝了360等安全助手之類的軟體,如果有,請在軟體的自啟動軟體管理中將app設置為允許
*我的手機沒有安裝這些軟體,但是手機中自帶了安全助手,有的手機系統設置裡面自帶了自啟動軟體管理的功能 ,所以在這里將我們的app設置為允許開機啟動),重啟手機,測試是否成功。

然而並沒有成功

接收不到BOOT_COMPLETED廣播可能的原因
(1)、BOOT_COMPLETED對應的action和uses-permission沒有一起添加
(2)、應用安裝到了sd卡內,安裝在sd卡內的應用是收不到BOOT_COMPLETED廣播的
(3)、系統開啟了Fast Boot模式,這種模式下系統啟動並不會發送BOOT_COMPLETED廣播
(4)、應用程序安裝後重來沒有啟動過,這種情況下應用程序接收不到任何廣播,包括BOOT_COMPLETED、ACTION_PACKAGE_ADDED、CONNECTIVITY_ACTION等等。
Android3.1之後,系統為了加強了安全性控制,應用程序安裝後或是(設置)應用管理中被強制關閉後處於stopped狀態,在這種狀態下接收不到任何廣播,除非廣播帶有FLAG_INCLUDE_STOPPED_PACKAGES標志,而默認所有系統廣播都是FLAG_EXCLUDE_STOPPED_PACKAGES的,所以就沒法通過系統廣播自啟動了。所以Android3.1之後
(1)、應用程序無法在安裝後自己啟動
(2)、沒有ui的程序必須通過其他應用激活才能啟動,如它的Activity、Service、Content Provider被其他應用調用。
存在一種例外,就是應用程序被adb push you.apk /system/app/下是會自動啟動的,不處於stopped狀態。

並不太懂 我的APP啟動後 已經收到廣播

第一種方式 我再模擬器上 測試 可以 android 9.0版本

桌面設置也會把你的app當成一個桌面主題,還有一個選項是系統桌面,你需要設置成自己的app

如果找不到桌面設置選項,可以從手機設置–應用程序-查看所有應用程序(包括系統的應用程序),找到桌面程序之類的字眼的應用,清楚其默認設置。

閱讀全文

與android開機啟動apk相關的資料

熱點內容
校驗演算法的缺點是什麼 瀏覽:717
PHP商品分類功能實現 瀏覽:328
php取字元串中間 瀏覽:428
程序員經常用工具 瀏覽:835
降服主力指標源碼主圖 瀏覽:500
python實用庫 瀏覽:692
電腦默認7個文件夾 瀏覽:11
新唐單片機安裝c51後編譯錯誤 瀏覽:530
紅包源碼引流神器 瀏覽:235
學生初中畢業撕書解壓 瀏覽:747
命令方塊刷銅點教學 瀏覽:690
php郵件訂閱系統 瀏覽:997
柱樑底加密箍間距 瀏覽:30
pythonjavascript對比 瀏覽:741
什麼動漫app是大陸字幕 瀏覽:286
android查看activity棧 瀏覽:918
x86固件編譯 瀏覽:166
安卓下什麼可以看微博動圖 瀏覽:412
永輝生活app注冊有什麼優惠嗎 瀏覽:411
行偏移演算法 瀏覽:241