开发Android开发

Android开发替换Launcher步骤+替换桌面项目实战

2022-11-14  本文已影响0人  谁动了我的代码

替换系统Launcher流程

做android产品的时候,根据需求会制定各种各样的Launcher,因此,在此记录替换系统Launcher的流程。

1、修改frameworks/base/core/java/android/content/Intent.java中

    //public static finalString CATEGORY_HOME = "android.intent.category.HOME";改为
    public static final String CATEGORY_RB_HOME = "com.intent.category.RB_HOME";

2、修改api下所有文件android.intent.category.HOME替换为

android.intent.category.RB_HOME

sed -i "s/CATEGORY_HOME/CATEGORY_RB_HOME/g" `grep CATEGORY_HOME -rl ./`
sed -i "s/WIDGET_CATEGORY_RB_HOME_SCREEN/WIDGET_CATEGORY_HOME_SCREEN/g" `grep WIDGET_CATEGORY_RB_HOME_SCREEN -rl ./`

3、修改所有文件中android.intent.category.HOME 替换为android.intent.category.RB_HOME

sed -i "s/category.HOME/category.RB_HOME/g" `grep category.HOME -rl ./`

4、添加APK文件

a.在/package/app/路径下,添加Launcher文件夹,将launcher.apk文件copy到此。
b.添加Android.mk文件
c.将系统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](https://my.oschina.net/u/1162528)
  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 成功!


以上就是Android开发替换Launcher步骤以及Android系统替换桌面项目实战;有关更多Android开发技术可以参考这本《Android核心技术电子册》学习,里面记录99%的Android核心技术点。详情可以点击查看。

文末

Launcher是安卓系统中的桌面启动器,安卓系统的桌面UI统称为Launcher。Launcher是安卓系统中的主要程序组件之一,安卓系统中如果没有Launcher就无法启动安卓桌面,Launcher出错的时候,安卓系统会出现“进程 com.android.launcher 意外停止”的提示窗口。这时需要重新启动Launcher。

上一篇下一篇

猜你喜欢

热点阅读