Firefly开源社区

AndroidStudio项目如何进行源码编译

117

积分

1

威望

0

贡献

技术小白

积分
117
发表于 2017-7-11 15:35:17     
本帖最后由 梁开东 于 2017-7-20 20:59 编辑

我以android7.1的rk3399为例:
1. 首先编译系统源码:由于我用到的只是android上层居多,所以需要编译kernel、uboot 和android。

单独编译kernel:
cd ~/proj/firefly-rk3399/
./FFTools/make.sh -k -j8

单独编译uboot:
cd ~/proj/firefly-rk3399/
./FFTools/make.sh -u -j8

单独编译android上层:
cd ~/proj/firefly-rk3399/
./FFTools/make.sh -a -j8

同时编译ubooot、kernel、android:
cd ~/proj/firefly-rk3399/
./FFTools/make.sh -j8

2.将androidstudio项目copy到 packages/apps/ 目录下,不过androidstudio项目编译步骤:
(1)cd /proj/firefly-rk3399/
(2).  FFTools/build.sh
(3)进入androidstudio项目中进行模块编译:
                      1)模块编译:
                               进入项目中:mm
                               没有进入项目:mm  项目路径
                     2)关联文件一起编译
                                   mma
                     3)重新编译
                                   mm -b
(1)和(2)只是第一次编译androidstudio项目才用到

3.如果androidstudio项目用到android:sharedUserId="android.uid.system"时则需要
在androidstudio项目中配置Android.mk文件(Android.mk路径一般在项目的根目录下),
androidstudio项目与eclipse项目在配置Android.mk文件有一小部分不一样:
比如:
eclipse项目的Android.mk:
  1. LOCAL_PATH := $(call my-dir)
  2. include $(CLEAR_VARS)
  3. LOCAL_MODULE_TAGS := optional
  4. LOCAL_STATIC_JAVA_LIBRARIES :=  android-support-v4 android-support-v7-appcompat  android-support-v7-recyclerview
  5. LOCAL_PACKAGE_NAME := SetupWizard
  6. LOCAL_CERTIFICATE := platform
  7. LOCAL_PRIVILEGED_MODULE := true
  8. LOCAL_MANIFEST_FILE := $(LOCAL_PATH)/AndroidManifest.xml
  9. LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res
  10. LOCAL_SRC_FILES := $(call all-java-files-under, src )
  11. LOCAL_PROGUARD_FLAG_FILES := proguard.flags
  12. LOCAL_OVERRIDES_PACKAGES := Provision
  13. include frameworks/base/packages/SettingsLib/common.mk
  14. include $(BUILD_PACKAGE)
复制代码
androidstudio项目的Android.mk:
  1. LOCAL_PATH := $(call my-dir)
  2. include $(CLEAR_VARS)
  3. LOCAL_MODULE_TAGS := optional
  4. LOCAL_STATIC_JAVA_LIBRARIES :=  android-support-v4 android-support-v7-appcompat  android-support-v7-recyclerview
  5. LOCAL_PACKAGE_NAME := SetupWizard
  6. LOCAL_CERTIFICATE := platform
  7. LOCAL_PRIVILEGED_MODULE := true
  8. LOCAL_MANIFEST_FILE := $(LOCAL_PATH)/app/src/main/AndroidManifest.xml
  9. LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/app/src/main/res/
  10. LOCAL_SRC_FILES := $(call all-java-files-under, app/src/main/java)
  11. LOCAL_PROGUARD_FLAG_FILES := proguard.flags
  12. LOCAL_OVERRIDES_PACKAGES := Provision
  13. include frameworks/base/packages/SettingsLib/common.mk
  14. include $(BUILD_PACKAGE)
复制代码
造成的原因是androidstudio项目的代码文件、资源文件和配置文件所在的路径有所改变
eclipse项目:代码文件、资源文件和配置文件一般是放在项目的根目录下
androidstudio项目:代码文件、资源文件和配置文件一般是放在app/src/main目录下

总体而言:androidstudio项目与eclipse项目在配置Android.mk文件应该是差不多的,只不过要注意文件路径。

android.mk中一些基本赋值方式:
=    是最基本的赋值。
:=   是覆盖之前的值。
?=  是如果没有被赋过值就赋予等号后面的值。
+=  是添加等号后面的值(可理解为追加等号后面的值)。

4.想了解Android.mk详细语法和具体如何操作:
http://android.mk/#mkVars

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表