分享
分享赚钱 收藏 举报 版权申诉 / 9

类型android源码编译与调试.doc

  • 上传人:11xg27ws
  • 文档编号:6622464
  • 上传时间:2019-04-18
  • 格式:DOC
  • 页数:9
  • 大小:145.56KB
  • 配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    android源码编译与调试.doc
    资源描述:

    1、Android 源码编译与调试整理:Joey Yin如有任何问题,请联系 系统环境ubuntu-11.10-desktop-i386onVMware Workstation 8.0.0 build-471780onWindowsXP源码编译软件环境基本按照 http:/ ccache。下载源码http:/ android-4.0.3_r1下载 3、4 天的时间才最终完成。编译make j4出现错误,发现 ubuntu-11.10 默认安装的是 gcc4.6,但编译 android 需要 gcc4.4。重新安装gcc4.4 后执行 make j4,顺利完成编译。执行emulator出现错误,发现

    2、是由于之前安装了 android sdk 的缘故。在 /.bashrc 中将 android sdk 的路径从 PATH 中移除,同时增加:export 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:$PAT

    3、H编译生成的 emulator 等其他 bin 工具在/home/joeyyin/android_4.0.3_r1/out/host/linux-x86/bin 目录。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

    4、.img 分别加载到 ramdisk 文件系统的 system 和 userdata 目录下。再执行 emulator,模拟器顺利启动。cd /android_4.0.3_r1/out/target/product/genericemulator -system system.img -data userdata.img -ramdisk ramdisk.img编译模块android 中的一个应用程序可以单独编译,编译后要重新生成 system.img在源码目录下执行$ . build/envsetup.sh (.后面有空格)就多出一些命令:- croot: Changes directory

    5、 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 file

    6、s.- godir: Go to the directory containing a file.可以加help 查看用法我们可以使用 mmm 来编译指定目录的模块,如编译联系人:$ mmm packages/apps/Browsers/编完之后生成两个文件:out/target/product/generic/data/app/Browser.apkout/target/product/generic/system/app/Browser.apk可以使用$ make snod重新生成 system.img,再运行模拟器编译 SDK$make sdk悲剧的出现以下错误:解决:查找 alarmp

    7、rovider 模块,没有发现搜索 build 目录下含 alarmprovider 的项目去掉这两个文件中的 PRODUCT_PACKAGES 中 alarmprovider。网上也有关于这个问题的解答:“Indeed there is no a module with name AlarmProvider in the source tree now. To fix it, remove AlarmProvider from the product definition in the following files: ./build/target/product/large_emu_hw.

    8、mk:25: AlarmProvider ./build/target/product/generic_no_telephony.mk:24: AlarmProvider “$ make sdk又先后出现和以上类似的针对Sync, Updater, SyncProvider, 看了网上的信息,也可以使用 make PRODUCT-sdk-sdk 进行编译将 generic_no_telephony.mk, large_emu_hw.mk 恢复$ make PRODUCT-sdk-sdk半小时候顺利完成编译。make SDK 和 make PRODUCT -sdk-sdk 有何异同?编译后生成的

    9、 SDK 存放在 out/host/linux-x86/sdk/,此目录下有 android-sdk_eng.joeyyin_linux- x86.zip 和android-sdk_eng.joeyyin_linux-x86 目录。android-sdk_eng.joeyyin_linux-x86 就是 SDK 目录实际上,当用 mmm 命令编译模块时,一样会把 SDK 的输出文件清除,因此,最好把 android-sdk_eng.joeyyin_linux-x86 移出来此后的应用开发,就在该 SDK 上进行,所以把在 /.bashrc 中增加 sdk tools/platform_tool

    10、s 到 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_HOME/tools:$ANDROID_SDK_HOME/platform_tools: $PATH创建 Android Virtual Device编译出来的 SDK 是没有 AVD(Android Virtual Device)的,我们可以通过 android 工具查看:$ android list创

    11、建 AVD:$ android create avd -t 1 -n myavd可以 android help 来查看上面命令选项的用法。创建中有一些选项,默认就行了再执行 android list,可以看到 AVD 存放的位置以后每次运行 emulator 都要加-avd myavd 或myavd 选项:$ emulator -avd myavd源码编译分析首先需要理解 makefile 的编写规则推荐一篇介绍文章 http:/ - build/core/main.mkEclipse+adtEclipse 安装下载 eclipse from http:/www.eclipse.org/dow

    12、nloads/?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 /opt$ cd /opt$ sudo chown -R root:root eclipse$ sudo chmod -R +r eclipse$ sudo touch /usr/bin/eclipse$ sudo chmod 755 /usr/bin/eclipse$

    13、 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/applications/eclipse.desktop文件内容如下:Desktop EntryEncoding=UTF-8Name=EclipseComment=Eclipse IDEExec=eclipseIcon=/opt/eclipse/icon.xpmTe

    14、rminal=falseType=ApplicationCategories=GNOME;Application;Development;StartupNotify=trueStart eclipse firsttime:$ /opt/eclipse/eclipse -clean pid = * Listening on port 50396. 回到第一个终端,导出环境变量,adb, arm-eabi-gdb 等的路径,在执行 gdbclient 报错时,可将相应的命令 的路径导出export PATH=/home/joeyyin/android_4.0.3_r1/out/host/linux

    15、-x86/sdk/android-sdk_eng.joeyyin_linux-x86/platform-tools:$PATHexport PATH=/home/joeyyin/android_4.0.3_r1/prebuilt/linux-x86/toolchain/arm-linux-androideabi-4.4.x/bin:$PATH现在执行命令gdb client成功的话就会加载一系列的符号表。试了一下设置断点,成功地在代码中中断了下来。下面要做的就 是熟悉 GDB 调试命令了。7. 在 gdb 中设置断点 b FrameLoaderClientAndroid.cpp:888c - continue8. 在模拟中用浏览器打开任一网页,就会进入断点了。另有一简化方法:http:/ 兼容测试工具Device - ?Docs - ?Libcore -?附录Linux 环境变量设置http:/ shellcat /etc/shells查看当前使用的 shellecho $SHELL检查用户(joeyyin) 的默认 shellcat /etc/passwd | grep joeyyin切换 shell(到/bin/sh)/bin/sh退出Exit共享文件夹设置http:/

    展开阅读全文
    提示  道客多多所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:android源码编译与调试.doc
    链接地址:https://www.docduoduo.com/p-6622464.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    道客多多用户QQ群:832276834  微博官方号:道客多多官方   知乎号:道客多多

    Copyright© 2025 道客多多 docduoduo.com 网站版权所有世界地图

    经营许可证编号:粤ICP备2021046453号    营业执照商标

    1.png 2.png 3.png 4.png 5.png 6.png 7.png 8.png 9.png 10.png



    收起
    展开