在开发过程中,尤其是Framework相关开发时,有时候需要重新编译资源文件.编译顺序和注意事项如下:

1,资源文件位置:frameworks/base/core/res

2,编译后生成的文件:framework-res.apk 另外com.android.internal.R会更新这个R.java所在目录为/out/target/common/R/com/android /internal.

3,编译资源后,必须重新编译framework.jar.

4,如果在frameworks/base/core/res执行mm是并不重新编译,请使用toutch ### 命令

###代表目录下的一个文件.

5,资源文件要小写.

6,如果没有必要,不要编译资源文件,可以用其他方式使用资源,比如将资源使用adb push 传到某个目

录,程序中直接指定具体目录.我在编译资源过程中遇到一些奇怪的问题,比如有时候许多图标会显

示错误,原因猜测跟重新编译资源有关,可以试着重新编译services.jar并替换看看.

举一个例子:假如我想在WindowManagerService.java中使用一个图片资源pic.png.顺序如下.

1,将文件pic.png拷贝到位置:frameworks/base/core/res/res/drawable下.

2,在frameworks/base/core/res/res/drawable目录下执行touch pic.png.

3,进入目录frameworks/base/core/res/ 执行mm命令, 编译 framework-res.apk

4,执行完后com.android.internal.R 会新生成一个R.drawable.pic的引用.在程序中使用即可.

5,在目录frameworks/base/ 下执行mm 编译 framework.jar.

6,在WindowManagerService.java中使用com.android.internal.R.drawable.pic,使用完后保 存文件.

7,进入目录frameworks/base/services/java/ 执行mm 编译  services.jar

8,替换机器上(虚拟机或者真机)的jar apk文件.

adb push framework-res.apk /system/framework/

adb push services.jar /system/framework/

adb push framework.jar /system/framework/

执行命令时注意framework-res.apk 的真实路径.

9,reboot 机器,查看修改结果.大功告成!

[转]Android project 的常用编译方法

0/ 准备工作 (生成mm等命令,具体参考: ~/mydonut/build/envsetup.sh)$ cd mydonut$ sh . build/envsetup.sh1/ 编译项目 (Package: out/...,镜像文件路径:~/mydonut/out/target/product/generic)$ make2/ 创建SDK (Package SDK: out/host/darwin-x86/sdk/android-sdk_eng.-x86.zip)$ make sdk3/ 创建ADT (Package ADT: ~/mysdk/android-eclipse-.zip)$ development/tools/eclipse/scripts/build_server.sh ~/mysdk $USER4/ 编译模块 (访问模块对应的目录,执行mm命令,Package: ~/mydonut/out/target/product/generic/system/{model-name}/{submodel-name}.**)$ cd frameworks/$ mm该system目录对应的就是设备/模拟器运行环境对应的system目录,我 们讲新生成的模块文件(*.so/*.jar/*.apk/...)上传到运行环境下的对应目录后,重启设备生效如果是应用程序(*.apk),除了Launcher应用需要重启,其他应用均不需要重启设备。下面以更新framework为例,Package: ~/mydonut/out/target/product/generic/system/framework/framework.jar4.1 修改framwork程序(~mydonut/framework/...),并访问framework目录,执行mm命令,编译新的 framework.jar程序$ cd framework$ mm其他模块,如库文件和应用程序也可以用同样的方法编译;应 用程序还可以通过eclipse创建android 应用程序安装包。4.2 首先我们运行模拟器(如果是手机,则通过USB连上终端)$ cd {ANDROID SDK}/tools$ ./emulator -avd {AVD_NAME}4.3 然后通过shell命令,设置设备/system目录的写权限$ ./adb shell# mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system# cd /system/bin# cat sh > su# chmod 4755 su# exit4.4 上传framework.jar到对应的运行环境目录$ ./adb push {MYDONUT_OUT_PATH}/target/product/generic/system/framework/framework.jar /system/framework4.5 通过命令,重启设备,更新生效。$ ./adb shell# stop# start注意:如果要关掉模拟窗口后 生效,需要通过make命令,编译最后一次编译后的改动,生成新的img镜像文件,并更新到SDK,或生成新的SDK。附1:命令注解Invoke ". build/envsetup.sh" from your shell to add the following functions to your environment:- croot: Changes directory to the top of the tree.- m: Makes from the top of the tree.- mm: Builds all of the modules in the current directory.- mmm: Builds all of the modules in the supplied directories.- cgrep: Greps on all local C/C++ files.- jgrep: Greps on all local Java files.- resgrep: Greps on all local res/*.xml files.- godir: Go to the directory containing a file.附2:参考文档~/mydonut/development/docs/howto_SDK_git_cygwin.txt~/mydonut/development/docs/howto_build_SDK.txt~/mydonut/development/docs/howto_use_cupcake_sdk.txt附3:输出目录~/mydonut/out/target/common/obj/JAVA_LIBRARIES.jar程序包的完整输出目录,含有SDK中标志为@hide的程序和接口, 应用程序中需要这些借口可以引入相关的.jar程序。~/mydonut/out/host/linux-x86/bin存放相关的工具tools目录附4:创建完整的java项目$ cp ./development/ide/eclipse/.classpath .打开Eclipse,新增一个已经创建的java项目,执行mydonut目录,点击finish,完成项目的创建,可以查看项目下所有的 java程序。网址:http://www.blogjava.net/anymobile/articles/296462.html

android mm 修改路径,Android 编译系统模块相关推荐

  1. android browser 书签 路径,Android Browser学习七 书签历史模块: 书签UI的实现(2)

    由于书签模块还是比较复杂的, 为了不让博客变得太长, 故拆分为两篇. 上一篇介绍了书签大致的实现, 本篇主要介绍 1.书签模块BreadCrumb的实现, 2.书签模块与Activity之间的通讯, ...

  2. android studio视频路径,Android studio相关设置及实现存在于工程目录中的视频播放...

    一:相关设置 1:主题设置 File-->Settings-->Appearance &Behavior-->Appearance-->THeme 2:Java源码的颜 ...

  3. android 动态修改 selector,Android Selector 按下修改背景和文本颜色的实现代码

    1,selector 按下修改背景和文本颜色 [1]点击改变字体颜色 - android:state_pressed(按压状态) [2]selector状态选择器(bg_btn_two (存放 res ...

  4. android assets绝对路径,Android 获取assets的绝对路径

    第一种方法: String path = "file:///android_asset/文件名"; 第二种方法: InputStream abpath = getClass().g ...

  5. android读写缓存文件路径,Android app-cache-Path的 缓存图片、缓存文件的路径包名路径 和外路径比较...

    代码对应的路径: //判断手机是否挂在sd卡 String externalStorageState= Environment.getExternalStorageState(); File down ...

  6. Android反射修改view,Android 修改viewpage滑动速度的实现代码

    1.自定义Scroller public class ViewPageFixedSpeedScroller extends Scroller { private int mDuration = 300 ...

  7. android 动态修改资源,Android如何动态修改Manifest文件

    修改manifest文件Android Manifest.xml,添加相应的声明.在这里,我们需要将新定义的活动PrefsActivity注册到manifest文件. 同前面一样,在Eclipse中打 ...

  8. android 自动修改ip,Android实现编程修改手机静态IP的方法

    本文实例讲述了Android实现编程修改手机静态IP的方法.分享给大家供大家参考.具体如下: 这里演示通过编程方式动态修改手机静态IP的方法,可以用于wifi接入点切换 public void onC ...

  9. android 8 修改ip,android 8.1 framework层修改以太网静态ip功能

    Android5.0基础上到Android7.0,Android都自带了以太网的设置功能,基本上都是将ip地址和网关之类的信息通过StaticIpConfiguration该对象实现联网功能.到了An ...

最新文章

  1. c语言二十四点游戏,C语言解24点游戏程序
  2. 《转》推荐系统经典论文文献及业界应用
  3. 直接下载mongodb版本
  4. python【数据结构与算法】计数问题(分治)
  5. A Java Runtime Environment (JRE) or Java Development Kit (JDK)
  6. WebForm页面使用Ajax
  7. [基础题] 6.(*)按如下要求编写Java程序: (1)编写一个接口:OneToN,只含有一个方法int dispose(int n)
  8. C#自定义控件,在项目工具箱中加入自定义控件,调用自定义控件
  9. YOLO v3 安装并训练自己数据
  10. 甲骨文裁员是在为云业务转型太慢埋单吗?
  11. 东京通勤概况及奥运会交通措施
  12. idea运行maven无法下载jar并报错work offline
  13. Android设备实现语音视频通话
  14. 《Java解惑》系列——01表达式之谜——谜题09:半斤
  15. gossip algorithms
  16. 在vue中使用element-ui二次封装面包屑导条
  17. 前端技术猜想-2018
  18. 元宇宙岗位薪资排行榜,出炉!
  19. Cheat Engine 新手教程
  20. Golang UDP编程

热门文章

  1. 【LeetCode】461. Hamming Distance (java实现)
  2. ganglia的搭建以及添加被监控主机
  3. 如何基于对话框的project基于改变BCG的
  4. 目标跟踪之光流法---光流法简单介绍
  5. 谈谈android不同尺寸,不同分辨率的布局
  6. java扫描局域网中可用ip_使用java线程扫描局域网ip简单方案
  7. java 聚合模式_java 聚合和组合的区别?
  8. flex布局_flex 布局概述
  9. python scrapy框架详解_Python爬虫知识点四--scrapy框架
  10. linux基本命令的使用原理,linux基本常用命令及其使用方法