JNI开发,实现自己的C代码,helloworld

在这里实现一个简单的demo,完成加载自己的C代码

使用Android studio,一步一步教你实现在屏幕上显示出helloworld

如下图显示,配置号NDK的路径,没有路径的需要自己下载,在Android NDK location 下按提示下载ndk-bundle,下载完成后,则会自动配置好NDK路径

来源于网络

在gradle.properties 文件里面添'android.useDeprecatedNdk=true',如果不添加的话会在编译的时候报错,提示添加这段代码,到时候按照提示进行添加也可。

来源于网络

修改build.gradle配置。打开\app\build.gradle文件,在'defaultConfig'里面添加如下代码

ndk{

moduleName "hello" //生成的so名字

abiFilters "armeabi", "armeabi-v7a", "x86" //输出指定的三种abi体系下的so库

}

如图:

来源于网络

下面是在Activity写下的调用代码:

package com.cxria.ndkapplication;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

private TextView mTextView;

static {

//加载需要的library

System.loadLibrary("hello");

}

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

mTextView = (TextView) findViewById(R.id.textview);

mTextView.setText(getStringFromJNI());

}

//C语言实现的方法

public static native String getStringFromJNI();

}

全部代码,我都粘贴出来了.

打开终端,在Android studio最下面的导航栏Terminal 输入如下的命令

进入app/src/main目录下新建jni目录:cd app/src/main –> mkdir jni (也可以找到指定目录手动创建)

然后进入app/src/main/java目录下编译:cd app/src/main/java –> javah -jni com.cxria.ndkapplication.MainActivity 注意一定要加上包路径。

执行完上述操作后,会在java目录下生成com_cxria_ndkapplication_MainActivity.h头文件,我们在MainActivity中写的本地方法的方法名已经在里边了。

在之前的jni文件夹下面新建'hello.c',在里面编写我们的C语言代码

编译运行,就能在屏幕上显示出'helloworld'了

android 使用c 代码实现,JNI开发实现helloworld,调用自己的C代码实现(1)相关推荐

  1. Android程序员 2019,VS 2019开发APP(一)界面和代码

    1.界面 在Resources>layout>目录下的*.xml文件就是界面文件 2.关联界面 接下来,通过将支持代码插入到 MainActivity 类中来添加代码以关联用户界面. 在  ...

  2. 安卓JNI开发-01

    安卓JNI开发 java中调用C,并传入相应数据进行模拟处理后再返回到java中 package com.example.jnitest;import java.util.Arrays;import ...

  3. Android NDK jni开发,适当的给Android 代码加密

    为什么使用ndk开发了,就是 稍微将代码隐藏一下..Android 虽然打包能混淆,但是有些东西是不能混淆的,如下图,压缩密码把直勾勾的下载代码中.下面手把手稍微优化下. 將操作密码的部分我们通过 j ...

  4. Android studio 下 JNI 开发实例

    在AS中进行 NDK 开发之前,我们先来简单的介绍几个大家都容易搞懵的概念: 到底什么是JNI,什么是NDK? 何为"交叉编译"? 先看什么是 JNI?JNI 的全称就是 Java ...

  5. Android JNI开发入门之一

    JNI在Android系统中有着广泛的应用.Android系统底层都是C/C++实现的,上层提供的API都是Java的,Java通过JNI调用底 层的实现.比如:Android API多媒体接口Med ...

  6. Android NDK开发之旅(2):一篇文章搞定Android Studio中使用CMake进行NDK/JNI开发

    Android NDK开发之旅(2):一篇文章搞定android Studio中使用CMake进行NDK/JNI开发 (码字不易,转载请声明出处:http://blog.csdn.NET/andrex ...

  7. Android JNI开发流程介绍

    1.什么是JNI JNI全称是Java Native Interface,中文称为Java本地接口.JNI是JAVA语言和C/C++语言沟通的协议,通过JNI,Java代码可以调用C.C++等语言写的 ...

  8. 安卓逆向_15( 二 ) --- Android Studio 3.6.3 JNI 环境配置 和 so 生成开发 demo

    From:Android Studio 3.0 JNI 的实现:https://blog.csdn.net/ziyoutiankoong/article/details/79696279 Androi ...

  9. android module 引用libs里面的so文件_Android中的JNI开发,你了解多少?

    一,什么是任务及管理 任务是用户在执行某项工作时与之互动的一系列 Activity 的集合. 一.步骤,修改build.gradle,添加cmakelists,写JNI接口,写c++,这个是不是流水线 ...

最新文章

  1. 06-Windows Server 2012 R2 会话远程桌面-标准部署-RD网关(RemoteApp)
  2. 5.Multil-task lasso(多任务lasso回归分析)
  3. const int 和INT const区别
  4. Qt学习笔记之文件处理
  5. nagios监控mysql主机,nginx,cpu,网卡流量
  6. Sql Server之旅——第三站 解惑那些背了多年聚集索引的人
  7. php如何避免时间重复,如何避免/停止php和html的重复插入?
  8. Coursera自动驾驶课程第7讲:Vehicle Lateral Control
  9. Git详解之二 Git基础(第二部分)
  10. 数组索引越界异常和空指针异常
  11. HTTP Live Streaming直播
  12. 域名解析服务器地址,中国优秀DNS公共域名解析服务器IP地址列表
  13. 从“傻X”到牛X——写在最前面的话
  14. sql server无法用sql server身份验证
  15. 近期优秀技术讲座资料和内容推荐
  16. 把Eclipse修改为黑色主题!配色方案详细图文并茂可供下载!
  17. StartSSL免费SSL证书成功申请-HTTPS让访问网站更安全
  18. Vue2.x - Vuex
  19. 分享一波电脑软件下载、编程学习、壁纸下载网站
  20. 拉伯证券|A股延续强势格局 北向资金开年以来净买入超1500亿元

热门文章

  1. 工具 每分钟_black: 一个不妥协的Python代码格式化工具
  2. javascript里用php,php中使用javascript - 程序园
  3. linux 内存 面试,【Linux内存面试题】面试问题:查看机器配置命… - 看准网
  4. 《计算机网络自顶向下》知识体系完全梳理
  5. Redis 集群_主从复制_哨兵模型
  6. vue 在 html 中自定义 tag
  7. JAVA编程规范-常量定义
  8. poj 1330 Nearest Common Ancestors LCA/DFS
  9. js 之for..in、表单及事件触发
  10. 很久没来了,嘿嘿 问候一下大家,O(∩_∩)O哈哈~