1. 程式人生 > >Android 替換系統桌面Launcher

Android 替換系統桌面Launcher

公司做一個定製的APP,就是開機就開啟app,按home還是自己app。我找了很多都是修改framework,這樣很麻煩,就相當編原始碼了(我覺得是這樣)。正題:

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme"android:sharedUserId="android.uid.system"
> <activity android:name=".activity.MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.HOME" /> <category android:name="android.intent.category.LAUNCHER" /> <category
android:name="android.intent.category.HOME.SEADEE"/> <category android:name="android.intent.category.DEFAULT" />
</intent-filter> </activity> </application>
我標記的地方 就是關鍵地方,這樣寫就會出現 下圖
 開機的時候會這樣顯示,還有app一直點返回到退出程式會顯示這個。
首先解決 點選返回顯示這個東西,就是攔截返回按鈕。 我這裡在MainActivity中加入此方法
@Override
public void onBackPressed() {
//        super.onBackPressed();
}
現在 基本就是完成了,還有一個主要的問題就是,每次要人選哪個是桌面很麻煩,所以思路就來了。Android本身的Launcher.apk
就是桌面,所以要麼我們替換系統的Launcher.apk 要麼就改原始碼,把跳轉的連結 跳轉到我們自己的apk,我這裡實現的是前者。
cmd中執行:
adb push C:\Users\BAO\Desktop\HwLauncher6.apk /system/app  這樣就OK了 但是出現一個問題,
報錯:adb remount 失敗:remount failed: Operation not permitted
發現是許可權的問題。 通過以下方式獲取許可權
方法:
1:adb devices
會出現就說明 你沒有連結上,那麼你就要看看是什麼原因。我這裡是360手機助手。
就是這兩個貨,
我很多時候AndroidStudio連結不上手機也是這個東西,把它結束程序,
它可能不會立刻關閉,你要等幾秒,方正就是一定要關閉它們。
再次輸入adb devices
就說明你成功了。
2:adb shell
su
mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system
chmod 777 /system
cd system
chmod 777 app 注意網上很多都是這樣,這個地方寫錯了導致不成功 是chmod 不是chomd
cd app
ls(這一步可以操作可以不操作,主要看你係統的launcher叫什麼名字,輸入ls 就出現所有apk 找到你的launcher 我這裡是HwLauncher6.apk)
 chmod 777  HwLauncher6.apk
 exit
這樣就獲取操作
/system/app/HwLauncher6.apk 記住是HwLauncher6.apk的讀取修改操作 只有他的。
再次在cmd中執行
adb push C:\Users\BAO\Desktop\HwLauncher6.apk /system/app 
出現 ok 成功!