android mk学习-使用源码编译 AndroidStudio 工程

16 篇文章 0 订阅
15 篇文章 1 订阅

在开发安卓app时,我们通常可以用 AndroidStudio 开发应用,然后 build apk ,以预装的方式放到源码下编译。如果需要用源码来编译 AndroidStudio 工程,该怎么做呢 ?
下面来实操学习 android Makefile 的使用。
将 AndroidStudio 工程放到源码 device/xxx/commom/apps 目录下,
8.0 的放到 vendor/xxx/common/apps/ 目录下,
本文以 MakefileDemo 为例,放到 vendor/xxx/common/apps/ 目录下

1.在 MakefileDemo 目录添加 Android.mk

#当前目录下没有需要编译的文件,请向子目录深入
include $(all-subdir-makefiles)

2.在 MakefileDemo/app 目录添加 Android.mk

#当前目录下没有需要编译的文件,请向子目录深入
include $(all-subdir-makefiles)

3.在 MakefileDemo/app/src 目录添加 Android.mk

#当前目录下没有需要编译的文件,请向子目录深入
include $(all-subdir-makefiles)

4.在 MakefileDemo/app/src/main 目录添加 Android.mk

# 固定在前,优先于CLEAR_VARS
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)

# 编译出来的apk名称
LOCAL_PACKAGE_NAME := MakefileDemo
LOCAL_MODULE_TAGS := optional

#打系统签名
LOCAL_CERTIFICATE := platform

# 指定 res 目录
LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res \

# 指定 java 文件目录
#如果是 eclipse 工程目录,则用 LOCAL_SRC_FILES := \ $(call all-java-files-under, src) 
LOCAL_SRC_FILES := \
    $(call all-java-files-under, java) \

include $(BUILD_PACKAGE)

include $(CLEAR_VARS)

include $(call all-makefiles-under,$(LOCAL_PATH))

这样,就可以 mm -B 编译这个工程了。我的工程是AS默认创建的,引用了 design 包,编译报错

/MakefileDemo/app/src/main/res/values/styles.xml:8: error: Error: No resource found that matches the given name: attr 'colorAccent'.

/MakefileDemo/app/src/main/res/values/styles.xml:6: error: Error: No resource found that matches the given name: attr 'colorPrimary'.

/MakefileDemo/app/src/main/res/values/styles.xml:7: error: Error: No resource found that matches the given name: attr 'colorPrimaryDark'.

修改如下,编译后运行软件,OK

# 固定在前,优先于CLEAR_VARS
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)

# 编译出来的apk名称
LOCAL_PACKAGE_NAME := MakefileDemo
LOCAL_MODULE_TAGS := optional

#打系统签名
LOCAL_CERTIFICATE := platform

LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res \
    frameworks/support/v7/appcompat/res \
    frameworks/support/design/res

LOCAL_SRC_FILES := \
    $(call all-java-files-under, java) \

LOCAL_STATIC_JAVA_LIBRARIES := \
    android-support-v7-appcompat \
    android-support-design \

LOCAL_AAPT_FLAGS := \
--auto-add-overlay \
--extra-packages android.support.design \
--extra-packages android.support.v7.appcompat

include $(BUILD_PACKAGE)

include $(CLEAR_VARS)

include $(call all-makefiles-under,$(LOCAL_PATH))
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值