基于Android源码的应用程序编译.pdf

基于Android源码的应用程序编译.pdf

ID:58314159

大小:209.79 KB

页数:3页

时间:2020-09-06

基于Android源码的应用程序编译.pdf_第1页
基于Android源码的应用程序编译.pdf_第2页
基于Android源码的应用程序编译.pdf_第3页
资源描述:

《基于Android源码的应用程序编译.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、基于海思android源码的模块编译作者:王峥日期:2015.07.10实际开发中,并不需要每次都编译所有源代码,只需要编译自己修改的模块即可。Android的编译系统提供了强大的机制支持单独模块的编译,而且十分简单。Android提供几种方式用于编译单独模块。(1)编译应用程序模块命令:make模块名字(提示:在这之前需要特别说明一下,最好执行下sourcebuild/envsetup.sh和lunchHi3796MV100-eng命令。)这种方法适合第一次编译,会把依赖模块一并编译。它需要在全部源代码中找到编译模块的And

2、roid.mk文件,并检查依赖模块是否有修改,因此编译时间稍微长。使用这种方法,我们只需要搜索源码目录下的Android.mk文件,找到模块名,然后指定给make即可。对于应用层程序,需要查看应用程序下面的Android.mk文件中LOCAL_PACKAGE_NAME变量。例如Camera程序:LOCAL_PATH:=$(callmy-dir)include$(CLEAR_VARS)LOCAL_MODULE:=com.android.phone.common(省略部分内容)LOCAL_PACKAGE_NAME:=Camera2

3、(省略部分内容)执行,makeCamera2即可。如果需要删除此apk以及生成的中间生成的东西,需要执行命令:makeclean-,例如,makeclean-Camera2,而不是makecleanCamera2。(2)make编译框架层和系统运行库源码对于框架层和系统运行库,需要查看LOCAL_MODULE变量。以frameworks包中的源码为例,在终端中运行以下命令:在海思代码根目录下用命令:findframeworks-nameAndroid.mk,该命令将搜索frameworks目录下所有的Andro

4、id.mk文件,列表如下:frameworks/media/libvideoeditor/lvpp/Android.mkframeworks/media/libvideoeditor/osal/src/Android.mkframeworks/webview/Android.mk(省略其他部分)以webview为例,打开webview框架层下的Android.mk显示Android.mk的内容如下:LOCAL_PATH:=$(callmy-dir)(省略其他部分)include$(CLEAR_VARS)LOCAL_MODULE

5、:=webviewinclude$(BUILD_EXECUTABLE)LOCAL_MODULE变量的值便是我们要找的模块名。在终端中运行以下命令:用命令,makewebview即可,清除用makeclean-webview。(3)关于mm和mmm命令mmm命令:该命令是envsetup.sh中注册的函数,用于在源码根目录编译指定模块,参数为模块的相对路径。只能在第一次编译后使用。比如要编译Camera2部分源码,需要在终端中执行以下命令:oliver@ngb-All-Series:~~/HiSTBAndroidV600R001

6、C00SPC060$mmmpackages/apps/Camera2mm命令:该命令也是envsetup.sh中注册的函数,用于在模块根目录编译这个模块。只能在第一次编译后使用。例如要编译Phone部分源码,需要在终端中执行以下命令:cdpackages/apps/Camera2进入该目录下,在/packages/apps/Camera2目录下执行mm命令。我们在编译的时候用make相关命令是不需要操心该模块属性和依赖的,所以一般建议用make+模块比较好。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。