博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android studio NDK 开发
阅读量:5940 次
发布时间:2019-06-19

本文共 2387 字,大约阅读时间需要 7 分钟。

hot3.png

目录结构

src/|-- main|	|--java|	|--jni|   |  |--lib|   |  |  |--arm64|   |  |  |  |--libmodpdfium.so|   |  |  ||   |  |  |--armeabi-v7a|   |  |  |  |--libmodpdfium.so|   |  |  ||   |  |  |--armeabi-v7a|   |  |  |  |--libmodpdfium.so|   |  |  ||   |  |  |--x86|   |  |    |--libmodpdfium.so|   |  |  |   |  |--mainJNILib.cpp|   |  |--util.hpp|   |  |	|--jniLibs|	|--res|

Project的build.gradle文件

buildscript {	repositories {		jcenter()	}	dependencies {		classpath 'com.android.tools.build:gradle:2.2.2'		classpath 'com.android.tools.build:gradle-experimental:0.8.2' // 增加		classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.6'		classpath 'com.github.dcendents:android-maven-gradle-plugin:1.4.1'	}}allprojects {	repositories {		jcenter()	}}

Module的build.gradle文件

apply plugin: 'com.android.model.library'model{	android {		compileSdkVersion = 24		buildToolsVersion = "24.0.2"		defaultConfig {			minSdkVersion.apiLevel 9			targetSdkVersion.apiLevel 22			versionCode 1			versionName "1.4.0"		}	}	android.ndk{		moduleName "jniPdfium"   //生成的so名字		abiFilters.addAll([ "arm64", "armeabi","armeabi-v7a", "mips", "x86", "x86_64"]) //会生成指定体系结构下的so库		ldLibs.addAll(["log", "android", "jnigraphics"])		stl "stlport_static"		cppFlags.add("-fexceptions")		cppFlags.add("-DHAVE_PTHREADS")	}	android.buildTypes {		release {			minifyEnabled false//            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'			proguardFiles.add(file("proguard-rules.txt"))		}	}	// c文件依赖的so库	repositories {		prebuilt(PrebuiltLibraries) {			libmodpdfium{ // so库文件名				headers.srcDir "src/main/jni" // so库的头文件				binaries.withType(SharedLibraryBinary) {					sharedLibraryFile = file("src/main/jni/lib/${targetPlatform.getName()}/libmodpdfium.so") // so库的位置				}			}		}	}	android.sources {		main{			jni {				dependencies { // c文件需要调用so库的函数					library "libmodpdfium"				}				source { // c文件的位置					srcDirs "src/main/jni"				}			}			jniLibs {				source { // jniLibs位置					srcDir "src/main/jniLibs"				}			}		}	}}dependencies {	compile fileTree(dir: 'libs', include: ['*.jar'])	testCompile 'junit:junit:4.12'	compile 'com.android.support:support-v4:24.2.1'}

参考:

Experimental Plugin User Guidehttp://tools.android.com/tech-docs/new-build-system/gradle-experimental在Android Studio中使用NDK/JNI - 实验版插件用户指南https://my.oschina.net/wolfcs/blog/550677

转载于:https://my.oschina.net/u/2501904/blog/793390

你可能感兴趣的文章
hdu1025 Constructing Roads In JGShining's Kingdom(二分+dp)
查看>>
Android PullToRefreshListView和ViewPager的结合使用
查看>>
禅修笔记——硅谷最受欢迎的情商课
查看>>
struts2入门(搭建环境、配置、示例)
查看>>
Caused by: org.apache.ibatis.reflection.ReflectionException我碰到的情况,原因不唯一
查看>>
linux top命令查看内存及多核CPU的使用讲述【转】
查看>>
Linux下golang开发环境搭建
查看>>
jQuery操作input
查看>>
layer弹出信息框API
查看>>
delete from inner join
查看>>
WPF自学入门(十一)WPF MVVM模式Command命令 WPF自学入门(十)WPF MVVM简单介绍...
查看>>
git merge 和 git merge --no-ff
查看>>
独立软件开发商进军SaaS注意八个问题,互联网营销
查看>>
jdk内存的分配
查看>>
关于self.用法的一些总结
查看>>
UIView翻译 (参考)
查看>>
Android Display buffer_handle_t的定义
查看>>
SSH详解
查看>>
ASM概述
查看>>
【290】Python 函数
查看>>