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文件的路径

时间: 2024-10-20 04:43:04

Android Studio 2.2 External Build的相关文章

Android Studio升级后工程Build failed.

最近在升级Android Studio后,发现原先能编译通过的工程,突然就编译不过了,原因是生成的AndroidManifest.xml文件中有乱码. 升级后: android studio 0.6.0 build tools 19.1.0 Android SDK tools 22.6.4. gradle 0.11.+ 错误信息: Error Info Error:(11) Error parsing XML: not well-formed (invalid token) Error:(11)

Android Studio 1.3RC版 build加速

Android Studio 确实是好用.但build的速度却是奇慢无比!.! ! 我上网找了非常多build加速的设置,却不能适配到我的1.3RC版... . .心塞.无耐,忍着超级无敌慢的速度硬是过了一周.当然这一周里差点儿每一天都找一遍设置... . . 直到.今天. 我是真的高兴坏了! ! ! .! ! ! !.!!!! ! .! !!! ! ! ! !!.!!! .! .! ! ! !!! ! !! .!!! .! .! ! !!!哈哈哈哈哈哈哈 机缘巧合之下我乱点进入了Appendi

Android(java)学习笔记127:Android Studio新建工程中的build.gradle、settings.gradle

随着信息化的快速发展,IT项目变得越来越复杂,通常都是由多个子系统共同协作完成.对于这种多系统.多项目的情况,很多构建工具都已经提供了不错的支持,像maven.ant.Gradle除了借鉴了ant或者maven的继承的方式定义子项目,也提供了一种更为方便的集中配置的方式,大大减少了构建带来的复杂度.除此之外,Gradle还提供了清晰的Project树模型来映射多项目的组织结构.下面,让我们了解一下如何使用Gradle构建多项目. 1.多项目的定义和结构 Mulit project 设置是grad

Android studio中2种build.gradle文件介绍

根目录下的build.gradle通常不需要修改这个文件中的内容,除非需要添加一些全局的项目构建配置 buildscript { repositories { google() //声明代码托管仓库Google jcenter() //声明代码托管仓库,用于引用jcenter上的开源项目 } dependencies { classpath 'com.android.tools.build:gradle:3.1.0' //声明了一个Gradle插件用来作为Android开发.3.1.0为grad

Android Studio官方文档之构建和运行你的APP

Android Studio官方文档之构建和运行你的APP 本文由MTJH翻译,jkYishon审校. 前言 默认情况下,Android Studio设置新的项目并且部署到模拟器或者真机设备上,只需要点击几下.使用即时运行,你并不需要构建一个新的APK即可将改变后的方法和现有的应用资源应用到一个正在运行的应用程序中,所以代码的改变是即时可见的. 点击Run来构建并运行你的APP.Android Studio通过Gradle构建你的App,选择一个部署的设备(模拟器或连接的设备),然后把你的APP

Android Studio Gradle 增加对.so 文件的支持

最近在开发Android Wear 手表项目,官方给的Demo全都是gradle 项目.当然我也用eclipse配置了一个可行的环境. 问题来了,eclipse,android studio 开发 android wear 哪家技术更强? 目前的开发体验是studio更强. 开发中碰到一个问题android studio在用gradle build wear app 的时候,不把.so文件打入apk包中,因为gradle不认识.so. Google了很多,有很多hack的方式,但是最简单的一种:

在Android studio中进行单元测试和ui测试

1.配置支持单元测试的工程 在写测试之前,让我们做下简单的检查,确保工程配置正确. 首先,确认在Build Variants窗口内的Test Artifact中选择了"Unit Tests". 然后,在工程的src文件夹内创建test和test/java文件夹.需要注意的是,你不能在Android视图下进行这些操作,要么在系统的文件管理器内创建,要么在工程窗口左上方点击下拉菜单选择Project视图.最终的工程结构应该是这样的: (在codelab的剩余部分,你可以返回继续使用Andr

Android Studio Gradle 添加.so 支持文件

近期发展Android Wear 关注商品.官员Demo所有gradle 工程. 当然,我也用eclipse配置一个可行的环境. 问题来了,eclipse,android studio 开发 android wear 哪家技术更强? 眼下的开发体验是studio更强. 开发中碰到一个问题android studio在用gradle build wear app 的时候,不把.so文件打入apk包中,由于gradle不认识.so. Google了非常多.有非常多hack的方式.可这是最简单的一种:

android studio+grade配置构建

Android 构建系统编译应用资源和源代码,然后将它们打包成可供您测试.部署.签署和分发的 APK.android Studio 使用 Gradle 这一高级构建工具包来自动化执行和管理构建流程,同时也允许您定义灵活的自定义构建配置.每个构建配置均可自行定义一组代码和资源,同时对所有应用版本共有的部分加以重复利用.Android Plugin for Gradle 与这个构建工具包协作,共同提供专用于构建和测试 Android 应用的流程和可配置设置. Gradle 和 Android 插件独