android 编译

来源:互联网 发布:有向网络最短路径 编辑:程序博客网 时间:2024/04/26 19:54

每次遇到编译android,是不是总有个冗繁的过程,感觉机器不给力不是,整理了一些。

加速ubuntu 虚拟机编译android /linux 系统的方法

内核加速方法  
1.安装ccache  
sudo apt-get install ccache  
2.添加缓存路径  
vi ~/.bashrc 再最后面添加一行指定缓存路径  
export CCACHE_DIR=/opt/ccache  
3.测试  
make clean 后再make zImage 一次就生效,一般会加速一倍时间。  
可以time make zImage -jx来测试,(x是响应的内核数)

表 . 产品版本定义文件中的变量及其说明

常量说明PRODUCT_NAME最终用户将看到的完整产品名,会出现在“关于手机”信息中。PRODUCT_MODEL产品的型号,这也是最终用户将看到的。PRODUCT_LOCALES该产品支持的地区,以空格分格,例如:en_GB de_DE es_ES fr_CA。PRODUCT_PACKAGES该产品版本中包含的 APK 应用程序,以空格分格,例如:Calendar Contacts。PRODUCT_DEVICE该产品的工业设计的名称。PRODUCT_MANUFACTURER制造商的名称。PRODUCT_BRAND该产品专门定义的商标(如果有的话)。PRODUCT_PROPERTY_OVERRIDES对于商品属性的定义。PRODUCT_COPY_FILES编译该产品时需要拷贝的文件,以“源路径 : 目标路径”的形式。PRODUCT_OTA_PUBLIC_KEYS对于该产品的 OTA 公开 key 的列表。PRODUCT_POLICY产品使用的策略。PRODUCT_PACKAGE_OVERLAYS指出是否要使用默认的资源或添加产品特定定义来覆盖。PRODUCT_CONTRIBUTORS_FILEHTML 文件,其中包含项目的贡献者。PRODUCT_TAGS该产品的标签,以空格分格。
表 . 各种模块的编译方式的定义文件

文件名说明host_static_library.mk定义了如何编译主机上的静态库。host_shared_library.mk定义了如何编译主机上的共享库。static_library.mk定义了如何编译设备上的静态库。shared_library.mk定义了如何编译设备上的共享库。executable.mk定义了如何编译设备上的可执行文件。host_executable.mk定义了如何编译主机上的可执行文件。package.mk定义了如何编译 APK 文件。prebuilt.mk定义了如何处理一个已经编译好的文件 ( 例如 Jar 包 )。multi_prebuilt.mk定义了如何处理一个或多个已编译文件,该文件的实现依赖 prebuilt.mk。host_prebuilt.mk处理一个或多个主机上使用的已编译文件,该文件的实现依赖 multi_prebuilt.mk。java_library.mk定义了如何编译设备上的共享 Java 库。static_java_library.mk定义了如何编译设备上的静态 Java 库。host_java_library.mk定义了如何编译主机上的共享 Java 库。