Android room定制,编译

android 默认编译步骤

1.source build/envsetup.sh

2.lunch

3.kheader(mtk不用)

4.make -j8

5.make -j8 2>&1 |tee log.txt

编译某个文件夹

cat make.ini

source build/envsetup.sh

lunch 选择版本

mmm frameworks/base/

mmma packages/apps/Launcher3 加a,查找单编译项目的所有模块

导出打包

source build/envsetup.sh

cat make.ini

lunch

23

kheader

source **********_Benga_324_QHD_NOGPS_B1.sh ide

改模块,烧到手机

改的是xml文件,更新下

find frameworks/base/packages/SettingsProvider/* -exec touch {} \;

find frameworks/base/packages/SettingsProvider/ -exec touch {} \;(删除apk,刷新)

单编模块

mmm frameworks/base/packages/SettingsProvider/

make snod 打包到img下(user版本 必须的操作)

android.mk文件

应用程序名称用LOCAL_PACKAGE_NAME,生成的模块的名称用LOCAL_MODULE

LOCAL_PATH:=$(call my-dir)(由于一般情况下Android.mk和需要编译的源文件在同一目录下)( 将LOCAL_PATH变量定义成 本文件所在 目录路径)

每个编译模块 都是 以include $(CLEAR_VARS)开始,以include $(BUILD_XXX)结束。

BUILD_PACKAGE 建立一个APK

include $(CLEAR_VARS)(指定让GNU MAKEFILE为你 清除 除LOCAL_PATH以外 的所有LOCAL_XXX变量)

LOCAL_SRC_FILES,app的所有源码,可以 指定 具体的 文件,如果是java源码的话,可以调用all-java-files-under得到。

LOCAL_MODULE_TAGS := user eng tests optional

user: 指该模块只在user版本下才编译

eng: 指该模块只在eng版本下才编译

optional:指该模块在 所有版本下都编译,默认是optional

LOCAL_CERTIFICATE := platform //指定 使用的哪种key 来给apk签名,platform 就是 指 用 platform.pk8和platform.x509.pem两个文件 来 签名。用这两个key签名后apk才真正可以放入系统进程中;

include $(BUILD_PACKAGE)编译一个应用程序(APK)

include $(BUILD_STATIC_LIBRARY)表示编译成静态库,后缀为.a。

include $(BUILD_SHARED_LIBRARY)表示编译成动态库,用来指示将当前模块编译为共享库,前缀为lib,后缀为.so。

include $(BUILD_EXECUTABLE)表示编译成可执行程序

include $(call all-subdir-makefiles),它的作用就是包含所有子目录中的Android.mk文件


 

猜你喜欢

转载自blog.csdn.net/sunshine_0707/article/details/83419158