Android.mk 项目迁移为 Gradle 项目

本文详细介绍了如何将一个使用Android.mk编译的Camera2项目迁移到Android Studio,使用Gradle进行构建。迁移过程包括分析Android.mk,编写build.gradle,修复报错,特别是针对Native代码的CMakeLists.txt的编写。文章提供了每个步骤的具体操作和遇到问题的解决方案。
摘要由CSDN通过智能技术生成

本文为博主原创文章,如需转载,请在醒目位置注明出处


前言

最近在研究 Google 的 Camera2 项目,因为该项目属于 AOSP,自然也是用 Android.mk 编译的。因源码阅读不是很方便,便想着迁移至 Android Studio 中,使用 Gradle 来编译。

1. 源码下载

源码分为两部分,一部分在 platform/packages/apps/Camer2 下:

2722938-692c82b8a1aa3d1f.png

另一部分在 platform/frameworks/ex/camera2 下:

2722938-a473936086b2255e.png

下载完成后,新建 Camera2 文件夹,先把 app 的代码全复制进去,再在下面新建文件夹 src_frameworks,将 frameworks/ex/camera2 下代码也复制进去,像这样:

2722938-a9eaacadd701bfa8.png
2722938-6623f778203d1488.png

2. 迁移至Android Studio

官方迁移指南:Migrating to Android Studio,按照 通过创建自定义 Gradle 构建文件进行迁移 小节,进行迁移。

2.1 分析 Android.mk

LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE_TAGS := optional

LOCAL_STATIC_ANDROID_LIBRARIES := \
    android-support-v13 \
    android-support-v4 \
    android-support-compat

LOCAL_STATIC_JAVA_LIBRARIES := android-ex-camera2-portability
LOCAL_STATIC_JAVA_LIBRARIES += xmp_toolkit
LOCAL_STATIC_JAVA_LIBRARIES += glide
LOCAL_STATIC_JAVA_LIBRARIES += guava
LOCAL_STATIC_JAVA_LIBRARIES += jsr305

LOCAL_SRC_FILES := $(call all-java-files-under, src)
LOCAL_SRC_FILES += $(call all-java-files-under, src_pd)
LOCAL_SRC_FILES += $(call all-java-files-under, src_pd_gcam)

LOCAL_RESOURCE_DIR += \
    $(LOCAL_PATH)/res \
    $(LOCAL_PATH)/res_p

include $(LOCAL_PATH)/version.mk

LOCAL_AAPT_FLAGS := \
        --auto-add-overlay \
        --version-name "$(version_name_package)" \
        --version-code $(version_code_package) \

LOCAL_USE_AAPT2 := true

LOCAL_PACKAGE_NAME := Camera2

LOCAL_SDK_VERSION := current

LOCAL_PROGUARD_FLAG_FILES := proguard.flags

# Guava uses deprecated org.apache.http.legacy classes.
LOCAL_JAVA_LIBRARIES += org.apache.http.legacy

LOCAL_JNI_SHARED_LIBRARIES := libjni_tinyplanet libjni_jpegutil

include $(BUILD_PACKAGE)

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

Android.mk 语法

原项目引用了 support-v13,support-v4,support-compat,xmp_toolkit,glide,guava,jsr305 共 7 个库,其中 glide,guava 版本较老,需要从 mavenCentral() 下载,jsr305 需要单独下载 jar:

2722938-3efe7f5c3023aaa8.png

2.2 编写 build.gradle

在 Camera2 目录下,新建 build.g

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值