framework调试
framework调试
1.cd framework/base
2.在此目录下执行 mm
3.adb push out/target/product/paz00/system/framework/framework.jar system/framework
4.重新运行模拟器,可以看到效果
修改frameworks/policies/base/phone/ 下文件
使用命令make android.policy
在虚拟机system/farmework/下的文件如下,根据修改文件的位置选择不同的make参数
monkey.jar
framework-tests.jar
am.jar
framework-res.apk
pm.jar
core.jar
input.jar
ime.jar
android.policy.jar
android.test.runner.jar
ext.jar
services.jar
javax.obex.jar
framework.jar
svc.jar
bmgr.jar
修改android system文件夹权限
具体操作:
lixinso@lixinso-desktop:~$ adb devices
List of devices attached
emulator-5554 device
lixinso@lixinso-desktop:~$ adb shell
# mount
rootfs / rootfs ro 0 0
tmpfs /dev tmpfs rw,mode=755 0 0
devpts /dev/pts devpts rw,mode=600 0 0
proc /proc proc rw 0 0
sysfs /sys sysfs rw 0 0
tmpfs /sqlite_stmt_journals tmpfs rw,size=4096k 0 0
none /dev/cpuctl cgroup rw,cpu 0 0
/dev/block/mtdblock0 /system yaffs2 ro 0 0
/dev/block/mtdblock1 /data yaffs2 rw,nosuid,nodev 0 0
/dev/block/mtdblock2 /cache yaffs2 rw,nosuid,nodev 0 0
/dev/block//vold/179:0 /sdcard vfat rw,dirsync,nosuid,nodev,noexec,uid=1000,gid=1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
# mount -o remount /dev/block/mtdblock0 /system
# mount
rootfs / rootfs ro 0 0
tmpfs /dev tmpfs rw,mode=755 0 0
devpts /dev/pts devpts rw,mode=600 0 0
proc /proc proc rw 0 0
sysfs /sys sysfs rw 0 0
tmpfs /sqlite_stmt_journals tmpfs rw,size=4096k 0 0
none /dev/cpuctl cgroup rw,cpu 0 0
/dev/block/mtdblock0 /system yaffs2 rw 0 0
/dev/block/mtdblock1 /data yaffs2 rw,nosuid,nodev 0 0
/dev/block/mtdblock2 /cache yaffs2 rw,nosuid,nodev 0 0
/dev/block//vold/179:0 /sdcard vfat rw,dirsync,nosuid,nodev,noexec,uid=1000,gid=1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
#
mount完就可以任意修改删除拉~~~~
adb push out/target/product/msm7627_ffa/system/framework/services.jar system/framework/services.jar
[转]Android 重新编译资源文件
在开发过程中,尤其是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.sh
1/ 编译项目 (Package: out/...,镜像文件路径:~/mydonut/out/target/product/generic)
$ make
2/ 创建SDK (Package SDK: out/host/darwin-x86/sdk/android-sdk_eng.<build-id>-x86.zip)
$ make sdk
3/ 创建ADT (Package ADT: ~/mysdk/android-eclipse-<buildnumber>.zip)
$ development/tools/eclipse/scripts/build_server.sh ~/mysdk $USER
4/ 编译模块 (访问模块对应的目录,执行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.jar
4.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
# exit
4.4 上传framework.jar到对应的运行环境目录
$ ./adb push {MYDONUT_OUT_PATH}/target/product/generic/system/framework/framework.jar /system/framework
4.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
framework调试相关推荐
- 查看Entity Framework生成的SQL语句
Entity Framework调试是个比较麻烦的事,因为目前它不支持把生成的SQL语句输出到日志或Debug,只能通过SQL Server Profiler来监视SQL执行,不是很方便.顺便提一句, ...
- Microsoft .NET Compact Framework 开发常见问题解答
这个 FAQ 有部分是通过编辑公共 .NET Compact Framework 新闻组 (microsoft.public.dotnet.framework.compactframework) 贴出 ...
- Microsoft .NET Compact Framework 开发常见问题解答 - 专注.NET技术及其相关应用开发! - 博客园...
Microsoft .NET Compact Framework 开发常见问题解答 发布日期: 3/30/2005 | 更新日期: 3/30/2005 Microsoft .NET Compact F ...
- android 4.0模拟器启动不了,Android 4.0 framework源码修改编译,模拟器运行不起来,求助...
当前位置:编程学习 > wap >> Android 4.0 framework源码修改编译,模拟器运行不起来,求助 我下载编译了android 4.0 ICS的源码,然后能利用编译 ...
- XCode 创建:静态库 动态库 Framework
目录 使用 XCode 创建 .a 格式的静态库 使用 XCode 创建 .framework 格式的静态库 使用 XCode 创建 .dylib 格式的动态库 使用 XCode 创建 .framew ...
- Android ROM编译、调试
android源码目录下的build/envsetup.sh文件,描述编译的命令 - m: Makes from the top of the tree. - mm: Builds all of th ...
- 书籍:Learn Web Development with Python - 2018.pdf
简介 使用最流行的Python Web框架(Django)进行Web编程的Python编程综合指南 主要特点 了解使用Python编程和构建Web应用程序的基础知识 使用Django从头开始构建Web ...
- RobotFramework(RF)常用函数库-内置库篇
内置库主要包含标准库和扩展库. 一.标准库: 1.Builtin库,使用前无须导入,系统已自动导入,包括Evaluate,Log等关键字. 2.Dialogs库,提供了暂停测试执行和从用户输入的方式, ...
- android app 的后台代码,包括后台的Android美食APP项目开源代码
项目简介 小食光定位为一款集美食,社交,LBS服务于一体的美食推荐APP.为你发现周边美食的同时提供一个吃货分享的平台. APP截图 功能模块 美食推荐 :提供基础的美食信息查询: 商家推荐 : 基于 ...
最新文章
- python 密度 语音_Python+sklearn机器学习应该了解的33个基本概念
- 阿里妈妈搜索广告CTR模型的“瘦身”之路
- CG-CTF-Web-GBK Injection
- 最全面的MySQL笔记
- echo 12345678 | base64 产生的结果跟12345678真正的base64编码不对
- 近似求PI (15 分)
- extjs office java_Extjs使用(最最基础)
- java实训---------双色球彩票管理系统(LotterySystem)
- 【转载】一个c程序在执行main函数之前和main之后都做了那些事情
- 非标机械设计老工程师的经验总结,还不赶紧收藏
- 放大图片不失真,不变模糊的方法
- VBS命令:关于以管理员身份运行程序的VBS命令
- linux改变cpu型号,怎么用linux查看cpu型号
- SSM 运行报错Failed to load resource: the server responded with a status of 404 (Not Found)
- gii无法访问 yii2_yii2 学习历程——gii配置外部用户访问权限问题
- windows下部署mysql5.7.21免安装版并设置开机自启动
- 一张图片的CSS自适应尺寸圆角方案
- 【转】iOS游戏/应用的营销及推广技巧(2)
- 数据科学家大减价:一小时只收30美元
- linux I2C设备驱动