• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > AndroidStudio如何快速制作.so

AndroidStudio如何快速制作.so

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了android studio导入so,android studio调用so,android studio添加so,androidstudio so文件,android studio加载so等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

AndroidStudio如何快速制作.so


之前写过一篇Eclipse制作.so的文章,使用的是GNUstep模拟Linux环境,过程现在看来是想相当麻烦,后来发现一个简单的方法就是通过项目右键添加Native Supprot...可以快速创建.so而不使用命令行,

\

 

由于AS越来越被大家使用,所以Eclipse的制作过程就不再写了,这篇主要讲的是如何用AS快速制作一个简单的.so文件!

如果之前对制作.so一点了解也没有的话,在看这一篇之前可以看下文章开头提到的文章,会对这篇文章的理解上有所帮助,因为本篇文章不打算讲解的太过详细!

 

步骤1:

创建一个新的AS项目(模板选择EmptyActivity即可)jnitest,包名:com.byl.jnitest:

\

 

步骤2:

添加NDK支持:

按Ctrl+Alt+Shift+S,出现如图:

\

ok,完成后,打开项目根目录下的local.properties文件:

\

ndk的路径会自动添加进来,表示操作成功!

 

步骤3:

打开根目录下gradle.properties文件,添加代码:

 

android.useDeprecatedNdk=true
\

 

步骤4:

项目>app>src>main文件夹下,新建jni文件夹,并放入三个文件.h、.c、.c:

\

注意:

.h文件命名的命名方式,包名+调用.so的Activity名且"."需要更换成下滑线"_";

jnitest.c的命名可以随便定义;

util.c是一个空的.c文件,作用就是在ndk编译时避免一个错误:

 

make.exe: *** No rule to make target

com_byl_jnitest_MainActivity.h:

 

 

/* DO NOT EDIT THIS FILE - it is machine generated */
#include 
/* Header for class com_byl_jnitest_MainActivity */

#ifndef _Included_com_byl_jnitest_MainActivity
#define _Included_com_byl_jnitest_MainActivity
#ifdef __cplusplus
extern "C" {
#endif
/*
 * Class:     com_byl_jnitest_MainActivity
 * Method:    getSec
 * Signature: ()Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_com_byl_jnitest_MainActivity_getSec
  (JNIEnv *, jclass);

#ifdef __cplusplus
}
#endif
#endif

jnitest.c:

 

 

#include  
#include  

jstring
Java_com_byl_jnitest_MainActivity_getSec
   (JNIEnv* env,jobject thiz){
	return (*env)->NewStringUTF(env,"调用jni成功");
}


 

步骤5:

在MainActivity中调用.so:

 

    public static native String getSec();//.so中的方法名

    static{
        System.loadLibrary("jnitest");
    }

注意:.so最终的名称默认为lib+项目名如:libjnitest.so。

 

\

 

步骤6:

最后一步,打开app目录下build.gradle文件,修改gradle配置:

 

 defaultConfig {
        applicationId "com.byl.jnitest"
        minSdkVersion 14
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"

        ndk {
            moduleName "jnitest"
            ldLibs "log", "z", "m"
            abiFilters "armeabi"
        }
    }

\

 

 

以上步骤全部完成后,直接点击run>>:

\

运行必然要报错的,因为之前.so文件并不存在,经此一调,ndk便自动为我们生成了想要的东西:

\

将.so文件复制出来,然后在main文件夹下建立jniLibs/armeabi,并将.so放入:

\

再次运行>>:

\

此例只是简单的输出一个字符串,一般的项目放入一个不想外露的密钥之类的还是非常有用的!

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • AndroidStudio如何快速制作.so

相关文章

  • 2017-05-26android 5.0后对于apk 跑32 64 的逻辑
  • 2017-05-26git详解,git
  • 2017-05-26andriod 获得drawable下所有图片,
  • 2017-05-26android插件开发-就是你了!启动吧!插件的activity(一)
  • 2017-07-22Android-SQLite和SQLiteOpenHelper
  • 2017-05-26手动获取判断处理权限,获取判断权限
  • 2017-05-26Android热补丁技术—dexposed原理简析(手机淘宝采用方案)
  • 2017-05-26Kotlin的数据类:节省很多行代码(KAD 10),kotlin很多行
  • 2017-05-26Android动态加载Activity原理
  • 2017-05-26Android的bitmap和优化,androidbitmap

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Android Fragment 剖析,androidfragment
    • Android之网络编程利用PHP操作MySql插入数据(四),androidmysql
    • Keepalived实现高可用
    • Android新手入门2016(12)--基于Layout文件的AlertDialog
    • android.view.InflateException: Binary XML file line #34: Error inflating class,
    • 如何让光标处于EditText的末尾,光标edittext末尾
    • android设计的布局在阿拉伯语下界面错乱的解决方法,android阿拉伯语
    • Android View事件分发机制
    • Kotlin与Android SDK 集成(KAD 05),kotlinandroid
    • Android动画原理总结

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有