【Android源码 栏目提醒】:网学会员鉴于大家对Android源码 十分关注,论文会员在此为大家搜集整理了“【长青说安卓】系列专题(三):Android开发二三事——源码工程下的开发方法简介 - 企业软件开发”一文,供大家参考学习
前言本文介绍了在获得
Android整个
源码的工程中如何进行编译和调试。
其中涉及了一些常用的命令和工具最核心的就是Linux的BashShell脚本和GNUMake工具。
其中的原理很复杂但是作为普通的应用开发者并不需要了解那么多只要会使用就可以了而学会使用还是挺简单的。
下面和跟着我一起学习吧。
目录一、如何编译工程二、如何编译应用三、如何调试应用四、如何在Windows下调试一、如何编译工程1、如何编译工程编译工程是非常简单的1启动一个命令行终端2进入到工程根目录下3执行命令“make”就开始编译了makemakemakemake备注make工具默认会找该目录下的Makefile文件去执行。
本步骤可以准确编译的前提是已正确配置好编译环境关于如何配置编译环境见其他相关文档。
编译成功后会在out相应目录下生成system.imguserdata.imgramdisk.img等文件。
一、如何编译工程续2、如何配置编译选项默认情况下编译的是供模拟器加载使用的Generic工程如果要编译具体的产品型号需要进行特别的配置。
按以下步骤操作1启动命令行终端并进入工程根目录2执行命令“sourcebuild/envsetup.sh”或“.build/envsetup.sh”命令加载环境变量。
.build/envsetup.sh.build/envsetup.sh.build/envsetup.sh.build/envsetup.sh备注source和‘.’之后有一个空格一、如何编译工程续3输入命令“choosecombo”然后根据出现的提示框逐一选择确认4确认完成后再次输入“make”命令就会按照刚才的配置进行编译。
二、如何编译应用
Android是一个智能平台应用是独立的可以进行单独的编译和安装。
在平时的开发过程中整个工程只需要编译一次就可以了而应用则可能需要无数次的编译和调试。
相对于编译整个工程的时间大约几个小时编译一个应用是非常快的大约几十秒。
下面就介绍一下编译单个应用的方法。
二、如何编译应用续1打开命令行终端进入工程根目录2执行“sourcebuild/envsetup.sh”或“.build/envsetup.sh”加载环境变量.build/envsetup.sh.build/envsetup.sh.build/envsetup.sh.build/envsetup.shsetpathssetpathssetpathssetpaths3以编译Email应用为例有两种方法可以编译该应用。
1使用mmm命令2使用mm命令二、如何编译应用续1使用mmm命令在工程根目录下执行以下命令mmmpackages/apps/Email/mmmpackages/apps/Email/mmmpackages/apps/Email/mmmpackages/apps/Email/2使用mm命令进入Email应用的文件夹下执行以下命令mmmmmmmm备注Email应用在packages/apps/Email/文件夹中二、如何编译应用续说明其实在命令行终端中加载了build/envsetup.sh脚本以后我们就有了以下命令可以使用只在当前终端中有效每次新开一个终端需要重新加载-croot:Changesdirectorytothetopofthetree.返回工程根目录-m:Makesfromthetopofthetree.从工程顶部开始编译-mm:Buildsallofthemodulesinthecurrentdirectory.编译所有子目录-mmm:Buildsallofthemodulesinthesupplieddirectories.编译指定目录-cgrep:GrepsonalllocalC/Cfiles.查找包含指定字符串的C/C文件-jgrep:GrepsonalllocalJavafiles.查找包含指定字符串的Java文件-resgrep:Grepsonalllocalres/.xmlfiles.查找包含指定字符串的资源文件-godir:Gotothedirectorycontainingafile.进入包含某个文件的目录三、如何调试应用前面介绍了如何编译整个工程以编译可以在模拟器运行的Generic为例编译成功后会在工程根目录下的out/target/product/generic/文件夹中会生成最核心的三个文件system.img–系统镜像文件userdata.img–用户数据镜像文件ramdisk.img–文件系统镜像文件三、如何调试应用续1、如何加载到模拟器运行按以下步骤可以将编译生成的img文件加载到模拟器运行1启动命令行终端并进入工程根目录2顺序执行以下脚本加载一些环境变量.build/envsetup.sh.build/envsetup.sh.build/envsetup.sh.build/envsetup.shsetpathssetpathssetpathssetpaths3输入以下命令将img加载到模拟运行emulatoremulatoremulatoremulator备注生成的img文件在out/target/product/generic/目录下。
三、如何调试应用续2、如何加载到模拟器输出Log在上一节的第四个步骤中加上一个-logcat参数就可以输出log信息了。
Log信息输出在当前的命令行终端中输入以下命令将img加载到模拟运行并输出log信息emulatoremulatoremulatoremulator-logcatall-logcatall-logcatall-logcatall备注有了Log输出我们就可以通过这些Log信息来调试程序程序了。
Android中提供了丰富的Log输出的方法如Log.vLog.wLog.e等还可以自定义Log的标签进行过滤输出。
三、如何调试应用续3、如何重新加载应用到模拟器大家都知道在开发过程中应用程序的
源码和资源文件是需要经常改动的改完了需要重新编译那么编译完了必须要重新加载到模拟器上运行才能看到修改的效果。
下面就介绍两种常用的完成这些工作的方式。
三、如何调试应用续3-1重新生成img文件并加载到模拟器运行修改完代码后按以下步骤操作以Email应用为例1启动命令行终端并进入工程根目录2顺序执行以下命令加载环境变量.build/envsetup.sh.build/envsetup.sh.build/envsetup.sh.build/envsetup.shsetpathssetpathssetpathssetpaths3编译Email应用mmmpackages/apps/Email/mmmpackages/apps/Email/mmmpackages/apps/Email/mmmpackages/apps/Email/4重新生成img文件makesnodmakesnodmakesnodmakesnod5进入out/target/product/generic/文件夹中cdout/target/product/generic/cdout/target/product/generic/cdout/target/product/generic/cdout/target/product/generic/6加载到模拟器中运行emulator-logcatall-systemsystem.img-datauserdata.img-ramdiskramdisk.imgemulator-logcatall-systemsystem.img-datauserdata.img-ramdiskramdisk.imgemulator-logcatall-systemsystem.img-datauserdata.img-ramdiskramdisk.imgemulator-logcatall-systemsystem.img-datauserdata.img-ramdiskramdisk.img备注如果启动模拟器是提示partitionsize不足请使用-partition-size命令参数后面带上的数值要大于编译生成的system.img大小。
三、如何调试应用续3-2单独编译应用并同步到模拟器上运行如果当前的模拟器已经在运行我们不想重新编译生成img文件因为比较耗费时间只想单独编译应用可以按以下步骤操作以Email应用为例1重新开启一个命令行终端并进入工程根目录因为原来运行模拟器的命令行终端已经无法再输入命令了2顺序执行以下命令加载环境变量.build/envsetup.sh.build/envsetup.sh.build/envsetup.sh.build/envsetup.shsetpathssetpathssetpathssetpaths3进入Email应用文件夹cdpackages/apps/Email/cdpackages/apps/Email/cdpackages/apps/Email/cdpackages/apps/Email/4执行以下命令就可以将新编译的Email.apk重新加载到模拟器上了mmadbremountadbsyncmmadbremountadbsyncmmadbremountadbsyncmmadbremountadbsync备注mm表示单独编译当前目录下的应用程序“”表示并行执行“adbremount”和“adbsync”是adb提供的重新加载和同步应用的命令。
三、如何调试应用续两种方式的比较1第一种方式需要重新启动模拟器整个系统需要重新启动速度较慢。
2第二种方式速度较快只是将新编译的应用重新加载到模拟器上运行不会重新生成img文件。
3一般情况下首次启动时只能使用第一种方式以后单独调试应用时就采用第二种方式。
两种方式方式结合使用效率较高。
三、如何调试应用续三、如何调试应用续其实以上的调试都是利用了
android提供的emulator和adb两个工具这两个工具提供了丰富的命令行参数可以进行非常复杂的配置和操作。
在加载完环境变量后可以通过以下命令查看他们支持的丰富功能。
有兴趣的同事可以自己去研究。
.build/envsetup.sh.build/envsetup.sh.build/envsetup.sh.build/envsetup.shsetpathssetpathssetpathssetpathsemulatoremulatoremulatoremulator––––helphelphelphelp------------查看查看查看查看androidemulatorandroidemulatorandroidemulatorandroidemulator提供的配置参数提供的配置参数提供的配置参数提供的配置参数adbadbadbadb------------查看查看查看查看adbadbadbadb提供的配置参数提供的配置参数提供的配置参数提供的配置参数四、如何在Windows下调试前面介绍的所有操作都是在Linux环境下本文都是以Ubuntu11.04系统为例进行的。
如果你还是习惯windows环境下的操作方式那么有没有办法呢其实是有的下面就介绍这方面的一个工具Xmanager可以让我们远程登录到Linux系统下进行操作并且将应用程序的运行界面显示在windows上。
备注远程登录的Linux系统必须首先开机可以是本机上安装的虚拟机也可以是远程的计算机。
四、如何在Windows下调试续XmanagerXmanagerXmanagerXmanager————百度百科Xmanager是全新标准的跨平台集成解决方案。
它是一个一站式解决方案这个软件包含有以下一些产品Xmanager3DOpenGLXshellXftp和Xlpd。
XmanagerPCXServer Xmanager是一个运行于MSWindows平台上的高性能的Xwindow服务器。
你可以在你的本地PC上同时运行Unix/Linux和Windows图形应用程序。
XshellXshell是一个用于MSWindows平台的强大的SSHTELNET和RLOGIN终端仿真软件。
它使得用户能轻松和安全地从WindowsPC上访问Unix/Linux主机。
备注本文介绍的功能主要用到了其中的Xshell和Xmanager两个工具。
四、如何在Windows下调试续1、安装Xmanger软件软件共享在cdmaserver1uploadandroid培训资源开发环境和工具AndroidDevelopForLinuxXmanager30备注由于是收费软件安装完后需要破解一下。
2、配置远程登录连接【开始】【程序】【XmanagerEnterprise】【XShell】四、如何在Windows下调试续2-1新建一个Session备注Linux下查看本机的ip地址使用ifconfig命令。
四、如何在Windows下调试续2-2在【Authentication】中设置用户名和密码四、如何在Windows下调试续2-3设置默认的编码方式为UTF-8否则会有乱码四、如何在Windows下调试续2-4连接成功后提示命令回显符四、如何在Windows下调试续2-5运行带界面的应用程序四、如何在Windows下调试续2-6运行
Android模拟器四、如何在Windows下调试续有了Xmanager这样强大的工具我们就完全可以在Windows下开发和调试了如果再把代码的文件夹共享出来那么我们基本上不用登陆Linux就可以进行开发和调试了。
Thankyouforyourtime张长青作品Emailadamzhang126.com
上一篇:
S3C6410 平台Android系统的Wi
下一篇:
美术教学中网络信息论文