这个事情我也是搞了将近一个礼拜,因为是第一次接触Android源码开发,所以速度比较慢。
首先,要清除原有Home和Launcher,具体如下
步骤① | |
| 删除源码\packages\apps\Launcher2文件夹 |
| |
步骤② | |
| 打开build\target\product\core.mk |
| 删除行“Launcher2 \” |
| |
步骤③ | |
| 打开out\target\product\sabresd_6dq\obj\APPS |
| 删除Launcher2_intermediates |
| 使用find命令搜索out目录,是否存在其他的Launcher2_intermediates相关编译文件夹,有则直接删除 |
| |
步骤④ | |
| 打开源码\development\samples\Home\AndroidManifest.xml并删除以下代码(如果没有development文件夹,请先进行两次编译) |
| <category android:name="android.intent.category.HOME" /> |
| |
步骤⑤ | |
| 重新编译则没有系统Launcher,准备将需要的Launcher放入系统中 |
然后就是难点,把自己的App烧进去,我的过程是这样的
步骤① | |
| 将自己的App源代码文件夹放入packages\app目录并确保自己的App的Activity的有以下权限: |
| <category android:name="android.intent.category.HOME" /> |
| <category android:name="android.intent.category.DEFAULT" /> |
| |
步骤② | |
| 在packages\apps\[App名称]目录下添加Android.mk文件 |
| 可以参考packages\apps\Calculator目录下的Android.mk的格式来制作 |
| |
步骤③ | |
| 控制台进入安卓源码目录,执行以下命令: |
| . build\envsetup |
| mm packages\apps\[App名称] |
| 提示编译通过且没有出现[Nothing done]则表示通过 |
| 如果出现错误提示,请检查是否为root用户,以及app文件是否存在test项目(Android Studio的测试项目) |
| 如果还有错误请参照其他系统App(如Launcher2和Calculator)等进行修改 |
| 或者根据App的结构进行修改,不同结构版本修改方法可能不同 |
| 通过后可以再使用“mmm packages\apps\[App名称]”命令做快速检查 |
| |
步骤④ | |
| 打开build\target\product\core.mk |
| 找到行“Browser \”另起一行添加“[App名称] \” |
| |
步骤⑤ | |
| 重新编译两次,烧写后直接出现app画面则为成功 |
如果不成功建议先找个好改的系统App先来测试,我一开始就是用ExactCalculator来测试的
步骤① | |
| 拷贝源码\packages\apps\ExactCalculator文件夹,并重命名为TestApp |
| 删除源码\packages\apps\ExactCalculator文件夹 |
| |
步骤② | |
| 打开build\target\product\core.mk |
| 编辑行“ExactCalculator \”→“TestApp \” |
| |
步骤③ | |
| 打开out\target\product\sabresd_6dq\obj\APPS |
| 删除ExactCalculator_intermediates |
| 使用find命令搜索out目录,是否存在其他的ExactCalculator_intermediates相关编译文件夹,有则直接删除 |
| |
步骤④ | |
| 打开\packages\apps\TestApp\Android.mk |
| 修改LOCAL_PACKAGE_NAME = TestApp |
| |
步骤⑤ | |
| 将自己的App源代码文件夹放入packages\TestApp\AndroidManifest.xml并在Activity内添加以下权限: |
| <category android:name="android.intent.category.HOME" /> |
| <category android:name="android.intent.category.DEFAULT" /> |
| |
步骤⑥ | |
| 控制台进入安卓源码目录,执行以下命令: |
| . build\envsetup |
| mm packages\apps\[App名称] |
| 提示编译通过且没有出现[Nothing done]则表示通过 |
| |
步骤⑦ | |
| 编译系统并烧写,开机出现计算器则OK |