android啟動app
㈠ Android 使用廣播系統解決app開機自啟動問題
關注 【網羅開發】微信公眾號,回復【160】便可領取。
網羅天下方法,方便你我開發 ,更多Android技術干貨等待領取,所有文檔會持續更新,歡迎關注一起成長!
總結一下使用ACTION_BOOT_COMPLETED的廣播,解決app開機自啟動的問題
1.首先在你的工程上建一個廣播接受的類,繼承BroadcastReceiver:
2.然後要在AndroidManifest.xml中加入許可權和配置相關信息:
3.在application標簽中,配置以下相關信息:
補充說明:
1.查看系統中是否安裝了類似360管家的軟體,為了加快開機速度,默認是關閉掉開機廣播的,只需要在設置中打開即可。
2.如果監聽不到廣播,可以嘗試同時監聽廣播和sd卡。
3.同時監聽廣播和sd卡,在application標簽中,配置以下相關信息:
㈡ Android APP啟動白(黑)屏解決方案(適用於App啟動立即展現logo、版權等)
Android APP啟動白(黑)屏解決方案(適用於App啟動立即展現logo、版權等)
我們要求在App啟動時顯示我們設置的啟動頁面,實測發現打開app的時候,會有短暫的1秒--2秒的白屏或者黑屏,然後才進入到程序界面。
簡單高效的解決方案一:
1、使用layer-list製作背景樣式
新建bg_start_pic.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 設置整個屏幕背景為白色 -->
<item>
<color android:color="@color/white" />
</item>
<!-- 中間logo -->
<item
android:width="@dimen/dp_150"
android:height="@dimen/dp_150"
android:gravity="center">
<bitmap android:src="@drawable/icon_splash_logo" android:gravity="center" />
</item>
<!-- 底部圖表 -->
<item
android:bottom="10dp"
android:gravity="bottom|center_horizontal">
<bitmap android:src="@drawable/pic_banner_home" />
</item>
</layer-list>
2、修改styles.xml文件
增加SplashTheme主題
<style name="SplashTheme" parent="AppTheme">
<item name="android:windowNoTitle">true</item>
<item name="android:windowBackground">@drawable/bg_start_pic</item>
</style>
3、修改AndroidManifest.xml
LauncherActivity使用StartAppTheme主題
<activity
android:name=".LauncherActivity"
android:label="@string/app_name"
android:theme="@style/StartAppTheme" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
㈢ 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的啟動非常接近。