1. 位置
公共控件的代码在源码目录 android/frameworks/base/core/java/android/
后台服务的代码在源码目录 android/frameworks/base/services/java/android/server

2. 修改
修改其中代码并执行 mm 编译
形如 :
$ cd frameworks/base/services/java/com/android/server/
$ vi IntentResolver.java
$ mm

3. 替换
编译后用生成的包替换手机上 /system/framework/ 中相应的包
编译后生成的文件见提示
形如 :
$ cd out/target/product/general/system/framework/
$ adb push services.jar /system/framework/

4. 使新的包生效

a) 方法 1:
重启手机后生效

b) 方法 2:
杀死 system_server 进程,使系统重新启动,这种方法速度快

$ ps
找到 system_server 对应的 pid, 假设它为 1219
$ kill 1219

5. 注意

a) 绝大多数情况下都能成功,不过最好在替换前备份原有 jar

b) 如果替换重要的包使机器不能启动到桌面了,可以通过重新打包 system.img ,然后重新烧写( fastboot )到系统中解决此问题,注意 system.img 的大小
$ ./out/host/linux-x86/bin/mkyaffs2image -f out/target/product/generic/system out/target/product/generic/obj/PACKAGING/systemimage_unopt_intermediates/system.img
$ out/host/linux-x86/bin/acp -fpt out/target/product/generic/obj/PACKAGING/systemimage_unopt_intermediates/system.img out/target product/generic/system.img
$ fastboot flash system system.img

此时用 fastboot 烧写方式重启手机

更多相关文章

  1. Android有用代码片断(六)
  2. 如何下载android源码与android内核源码
  3. [置顶] 【Android】 基于XMPP Smack框架 开发QQ教程:目录
  4. Android 9.0 源码编译Android Car Automotive
  5. Android--第一行代码笔记(2)
  6. Android 2.2.2到Android 4.2.2源码下载地址
  7. Android中的Button自定义点击效果实例代码
  8. Edittext设置输入属性,包括使用代码设置
  9. Android build.gradle文件详解(转述自《Android第一行代码》第二

随机推荐

  1. Android(安卓)Adapter的那些事
  2. AIDL --- Android中的远程接口(1)
  3. Android应用Preference相关及源码浅析(Sh
  4. Android(安卓)Alert Dialog解决点击按钮
  5. 从Android到React Native开发(二、通信与
  6. Android高手进阶教程(十七)之---Android
  7. 关于android开机速度性能方面
  8. Android(安卓): GestureDetector手势检测
  9. Android中sqlite的基本增删查改用法
  10. Android系统的Binder机制之一——Service