目录
一.eclipse 中导入Android源码方法
二. Android源码 全编与单模块编译方法
三.模拟器安装SD card
四. 在真机中修改Android源码模块脚本
五.在 ubuntu 下添加 android 手机调试驱动:
一.eclipse 中导入Android源码方法
(1.)将code/development/ide/eclipse中的.classpath文件拷到根目录下(注.表示隐藏 可以用ls -al让其显示出来)
命令:cp .classpath ~/code/
(2.)参考文件code/development/ide/eclipse/README.importing-to- eclipse.txt操作
在eclipse->Window->preferences->java(code style->Formatter)和(Code Style > Organize Import)分别导入code/development/ide/eclipse/android- formatting.xml和
code/development/ide/eclipse/android.importorder
(3.)eclipse中新建java project勾上Use default loaction选项,选择source code的根目录
以上方法导入源码用于查看。
二. Android源码 全编与单模块编译方法
1. 代码编译:
> (1.) cd code root folder
> (2.) source ./build/envsetup.sh
> (3.) . build/envsetup.sh (注意. 与build之前有空格)
> (4.) lunch 1 //表示 只基于模拟器到版本,真机可以输入lunch 然后选择
> (5.) make -j4 (-j4代表启用4线程来编程,这个看机子配置)
> (6.) emulator (即可运行编译完成的模拟器)
2、模块编译:
1.source ./build/envsetup.sh
2. build/envsetup.sh (注意. 与build之前有空格)
3lunch 1 //表示 只基于模拟器到版本,真机可以输入lunch 然后选择
4进入code/packages/apps目录找到要编译的目录如:Calendar
使用mm命令即可。
3、修改模块:
(1.)将code/packages/apps目录下要修改的模块拷到主目录下。
(2.)在eclipse中将拷贝后的单个模块导入android project中,
此时会有些错误,需要根据这些错误提示导入一些lib和文件。
导入完成后就可以像普通APP一样进行修改。
(3.)在out/target/product/generic/system/app目录下
将原先的.apk文件删除,后执行在code根目录下make snod命令打包。
4)再 在code 根目录下 使用命令 emulator 运行模拟器。//上面到操作是为了 在系统中卸载 当前需要在模拟器运行的程序
5)在托出来的单个模块的Android project中 选择菜单 "run"->Run configurations-> 在android application中选择 当前到
前需要运行的程序,再 在Target中选择 "Always prompt to pick device"
三.模拟器安装SD card
1.cd 到SDK 中到tools目录。 ./mksdcrad 128M sdcard.img //建SD card
2.在code 根目录中输入: emulator -sdcard 刚才建的SD 路径// 与模拟器关联
四. 在真机中修改Android源码模块脚本
以DeskClock为例
. build/envsetup.sh
lunch cos_mako-userdebug
cd packages/apps/DeskClock
touch *.*
mm
cd ../../..
adb push /home/TAJ/Code/ChaOS/out/target/product/mako/system/app/DeskClock.apk /sdcard/
adb shell
su
mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system //将system mount
chmod 777 /system/
rm -rf /system/app/DeskClock.apk
cp /sdcard/DeskClock.apk /system/app/DeskClock.apk
exit
五.在 ubuntu 下添加 android 手机调试驱动:
在eclipse如果出现????,则是手机驱动没有添加。拆入USB后 什么都不显示可能是Setting中USB调试没打开。
添加驱动如下:
1.查看手机的Vender Id:打开控制台终端,手机usb连上电脑,输入命令:lsusb
2. 找到类似:Bus 001 Device 004: ID 0bb4:0cbd High Tech Coputer Corp.
3.获取手机的Vender Id:如上列所示:0bb4,即为此ID,
4.添加rules 文件:(/etc/udev/rules.d/ 是隐藏目录,需ls al才能看到)
在/etc/udev/rules.d/下,添加rules文件,需要使用sudo的权限。
如:在home下创建一个rules文件为:HTC.rules,打开这个文件,安如下格式,输入内容:
格式为:SUBSYSTEMS=="usb", SYSFS{idVendor}=="设备的 vender id", MODE="0666",OWNER="用户名"
内容为:
SUBSYSTEM=="usb",ATTRS{idVendor}=="18d1",MODE="0666"
5.重启udev并验证,
重启udev的命令:sudo /etc/init.d/udev restart 或者sudo source/etc/init.d/HTC.rules
6. 将手机拨下,并重新插上,使用命令:./adb devices,
发现 一串数字 device,
成功,如果出现????,则失败,重新配置。