首页 > 代码库 > Android Studio 2.2 External Build
Android Studio 2.2 External Build
今天在用studio写Native程序时发现2.2版本引入了一个 External Build来进行Native项目的构建。
最直观的表现就是c/c++的源码文件不用跟java文件在一个项目文件夹下了。而且与之前的在gradle中配置,然后自动生成makefile相比,灵活度大大增加,再也不用蛋疼到处找makefile对应的gradle语句了。
使用方法如下:
可以在任意文件夹用Android.mk跟Application.mk组织c/c++代码
如我的文件结构为:
---hook ---Android.mk ---Application.mk ---hook_d ------Android.mk ------main.c ---hook_so ------Android.mk ------main.c
在sudio新建一个jni文件夹,在Android视图模式下会显示为cpp文件夹
右键选择 Link C++ Project with Gradle
Builde System有 CMake 跟 ndk-build可选,如果用ndk-build选项的话要选择native项目最顶级的Android.mk文件
导入之后效果如下
最后再提一下刚学会的一个项目编译多个so文件的方法
---hook
---Android.mk
---Application.mk
---hook_d
------Android.mk
------main.c
---hook_so
------Android.mk
------main.c
拿上边的文件结构为例
hook/Androi.mk
include $(call all-subdir-makefiles)
hook/hook_d/Android.mk
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_CFLAGS += -pie -fPIE LOCAL_LDFLAGS += -pie -fPIE -llog TARGET_PLATFORM := android-22 LOCAL_MODULE := hook_d LOCAL_SRC_FILES := main.c include $(BUILD_EXECUTABLE)
hook/hook_so/Android.mk
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) ARGET_PLATFORM := android-22 LOCAL_MODULE := hook_so LOCAL_SRC_FILES := main.c include $(BUILD_SHARED_LIBRARY)
原理就是 all-subdir-makefiles 这个宏会返回只文件夹下所有Android.mk文件的路径
Android Studio 2.2 External Build
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。