android源码编译与调试.doc

上传人:pu****.1 文档编号:555011909 上传时间:2023-07-01 格式:DOC 页数:9 大小:145.56KB
返回 下载 相关 举报
android源码编译与调试.doc_第1页
第1页 / 共9页
android源码编译与调试.doc_第2页
第2页 / 共9页
android源码编译与调试.doc_第3页
第3页 / 共9页
android源码编译与调试.doc_第4页
第4页 / 共9页
android源码编译与调试.doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《android源码编译与调试.doc》由会员分享,可在线阅读,更多相关《android源码编译与调试.doc(9页珍藏版)》请在金锄头文库上搜索。

1、Android源码编译与调试整理:Joey Yin如有任何问题,请联系系统环境ubuntu-11.10-desktop-i386onVMware Workstation 8.0.0 build-471780onWindowsXP源码编译软件环境基本按照http:/ j4出现错误,发现ubuntu-11.10默认安装的是gcc4.6,但编译android需要gcc4.4。重新安装gcc4.4后执行 make j4,顺利完成编译。执行emulator出现错误,发现是由于之前安装了android sdk的缘故。在 /.bashrc中将android sdk的路径从PATH中移除,同时增加:expor

2、t ANDROID_PRODUCT_OUT=/home/joeyyin/android_4.0.3_r1/out/target/product/genericexport ANDROID_PRODUCT_OUT_BIN=/home/joeyyin/android_4.0.3_r1/out/host/linux-x86/binexport PATH=$ANDROID_PRODUCT_OUT:$ANDROID_PRODUCT_OUT_BIN:$PATH编译生成的emulator等其他bin工具在/home/joeyyin/android_4.0.3_r1/out/host/linux-x86/bi

3、n目录。System.img, userdata.img, ramdis.img在/home/joeyyin/android_4.0.3_r1/out/target/product/generic其中Ramdisk.img是emulator的文件系统。System.img包括主要的包、库等文件。Userdata.img包括了一些用户数据,emulator负责加载3个映像文件后,会把system.img,userdata.img分别加载到ramdisk文件系统的system和userdata目录下。再执行emulator,模拟器顺利启动。cd /android_4.0.3_r1/out/targ

4、et/product/genericemulator -system system.img -data userdata.img -ramdisk ramdisk.img编译模块android中的一个应用程序可以单独编译,编译后要重新生成system.img在源码目录下执行$ . build/envsetup.sh (.后面有空格)就多出一些命令:- 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

5、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.可以加help查看用法我们可以使用mmm来编译指定目录的模块,如编译联系人:$ mmm packag

6、es/apps/Browsers/编完之后生成两个文件:out/target/product/generic/data/app/Browser.apkout/target/product/generic/system/app/Browser.apk可以使用$ make snod重新生成system.img,再运行模拟器编译SDK$make sdk悲剧的出现以下错误:解决:查找alarmprovider模块,没有发现搜索build目录下含alarmprovider的项目去掉这两个文件中的PRODUCT_PACKAGES中alarmprovider。网上也有关于这个问题的解答:“Indeed th

7、ere is no a module with name AlarmProvider in the source tree now.To fix it, remove AlarmProvider from the product definition in thefollowing files:./build/target/product/large_emu_hw.mk:25: AlarmProvider./build/target/product/generic_no_telephony.mk:24: AlarmProvider“$ make sdk又先后出现和以上类似的针对Sync, Up

8、dater, SyncProvider, 看了网上的信息,也可以使用 make PRODUCT-sdk-sdk进行编译将generic_no_telephony.mk, large_emu_hw.mk恢复$ make PRODUCT-sdk-sdk半小时候顺利完成编译。make SDK和make PRODUCT -sdk-sdk有何异同?编译后生成的SDK存放在out/host/linux-x86/sdk/,此目录下有android-sdk_eng.joeyyin_linux- x86.zip和android-sdk_eng.joeyyin_linux-x86目录。android-sdk_en

9、g.joeyyin_linux-x86就是 SDK目录实际上,当用mmm命令编译模块时,一样会把SDK的输出文件清除,因此,最好把android-sdk_eng.joeyyin_linux-x86移出来此后的应用开发,就在该SDK上进行,所以把在/.bashrc中增加sdk tools/platform_tools到PATH中:export ANDROID_SDK_HOME=/home/joeyyin/android_4.0.3_r1/out/host/linux-x86/sdk/android-sdk_eng.joeyyin_linux-x86export PATH=$ANDROID_SDK

10、_HOME/tools:$ANDROID_SDK_HOME/platform_tools: $PATH创建Android Virtual Device编译出来的SDK是没有AVD(Android Virtual Device)的,我们可以通过android工具查看:$ android list创建AVD:$ android create avd -t 1 -n myavd可以android help来查看上面命令选项的用法。创建中有一些选项,默认就行了再执行android list,可以看到AVD存放的位置以后每次运行emulator都要加-avd myavd或myavd选项:$ emulat

11、or -avd myavd源码编译分析首先需要理解makefile的编写规则推荐一篇介绍文章http:/ - build/core/main.mkEclipse+adtEclipse 安装下载eclipse from http:/www.eclipse.org/downloads/?osType=linux这个版本在后面编译安装adt时会有错误,建议下载下面的版本:$ tar zxvf eclipse-jee-indigo-SR2-linux-gtk.tar.gz$ tar zxvf eclipse-SDK-3.7.2-linux-gtk.tar.gz$ sudo mv eclipse /op

12、t$ cd /opt$ sudo chown -R root:root eclipse$ sudo chmod -R +r eclipse$ sudo touch /usr/bin/eclipse$ sudo chmod 755 /usr/bin/eclipse$ sudo vim /usr/bin/eclipse文件内容如下:#!/bin/sh#export MOZILLA_FIVE_HOME=/usr/lib/mozilla/export ECLIPSE_HOME=/opt/eclipse$ECLIPSE_HOME/eclipse $*$ sudo vim /usr/share/appli

13、cations/eclipse.desktop文件内容如下:Desktop EntryEncoding=UTF-8Name=EclipseComment=Eclipse IDEExec=eclipseIcon=/opt/eclipse/icon.xpmTerminal=falseType=ApplicationCategories=GNOME;Application;Development;StartupNotify=trueStart eclipse firsttime:$ /opt/eclipse/eclipse -clean &编译安装adt$ cd /android_4.0.3_r1/

14、out/host/linux-x86$ mkdir adt$ cd /android_4.0.3_r1/sdk/eclipse/scripts$ export ECLIPSE_HOME=/opt/eclipse$ ./build_server.sh /android_4.0.3_r1/out/host/linux-x86/adt处理失败,出现很多类似以下依赖错误,据说要下载安装JavaEE版eclipse。Missing required plug-in com.android.ide.eclipse.adt_0.0.0.直接启动eclipse - help -install new software -add - https:/dl- eclipsehelp -install new software

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号