其实ubuntu中android开发环境的搭建也很简单

(1)下载android-sdk  (2)为Eclipse安装ADT,从help->Install New SoftWare进入,地址输入http://dl-ssl.google.com/android/eclipse/

要进入NDK开发再下一个android-ndk就可以了

以上开发包均可以从http://androidappdocs.appspot.com/sdk/ndk/index.html上下载得到

然后vi .bashrc,在PATH中添加3个路径:

android-sdk/tools  android-sdk/platform-tools  android-ndk

source .bashrc使更改生效

PATH下的工具命令可以直接使用,不需要指定路径。今天我们要用到android-sdk/tools下的android命令、android-sdk/platform-tools下的adb命令、android-ndk下的ndk-build命令。

Eclipse中使用NDK编程

1.New->Android Project

Project Name:hello-jni

Applicatin Name:hello-jni

create activity:HelloJni

Package Name:com.example.hellojni

Min SDK Version:3

2.项目下新建一个文件夹jni,该文件夹下新建两个文件:hello-jni.c和Android.mk

hello-jni.c

#include <string.h>
#include <jni.h>jstring
Java_com_example_hellojni_HelloJni_stringFromJNI( JNIEnv* env,  jobject thiz )
{return (*env)->NewStringUTF(env, "Hello from JNI !");
}

Java_com_example_hellojni_HelloJni_stringFromJNI这个函数名称是有讲究的
Java_  固定
com_example_hellojni_  java代码的包名
HelloJni_  java代码的类名
stringFromJNI  java代码中使用的方法名

Android.mk

LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE    := hello-jni
LOCAL_SRC_FILES := hello-jni.cinclude $(BUILD_SHARED_LIBRARY)

3.编写Android程序

com.example.hellojni.HelloJni.java

package com.example.hellojni;import android.app.Activity;
import android.widget.TextView;
import android.os.Bundle;public class HelloJni extends Activity
{/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);TextView  tv = new TextView(this);tv.setText( stringFromJNI() );setContentView(tv);}public native String  stringFromJNI();static {System.loadLibrary("hello-jni");}
}

4.编译C代码,生成共享库

进入项目的根目录$cd hello-jni

hello-jni $ android update project -p . -s

hello-jni $ ndk-build

此时libhello-jni.so就生成了,在bin下也有了apk包

5.直接在Eclipse中点击运行,或者手动安装apk包

首先输入android命令,启动模拟器

然后安装apk包:adb install bin/hello-jni.apk

6.卸载apk包

使用adb提供的shell命令

adb shell

#cd /data/app

#rm com.example.hellojin.apk

Android NDK--自己编写调用JNI相关推荐

  1. 怎么新建android.mk,Android NDK简单编写HelloWorld过程笔记(详细)

    Android NDK,坑啊,对于不会c的人来说更是坑啊,弄了一整天才把程序调出来,在网上找了各种资料,各种解决出现的bug,终于是能够运行了. 考虑了一下,还是做个目录吧. 1.创建一个项目 2.编 ...

  2. 关于掌纹识别的android版本开发(实例调用JNI)

    本博客下属文章均是为了记录自己的一些学习历程,因此难免有不对的地方,这些还请大家不吝指教. 一.项目背景 早在几个月前,老板便向我交代某app已在ios store上线,而该版本的撰写便是由师兄完成, ...

  3. 【WebRTC】在Android上用NDK编译WebRtc音频增益模块(AGC),降噪(NS),java调用JNI实现功能

    目录 ·········前言 ·········前期工作 ·········编译工作 ·········编码工作(AGC-JAVA) ·········编码工作(AGC-JNI) ·········编 ...

  4. 【学习Android NDK开发】Java通过JNI调用native方法

    参考:Android NDK,sample/hello-jni示例项目 系统环境:Ubuntu 12.04 LTS 32-bit 1.准备工作 打开Eclipse,新建Android项目: Appli ...

  5. Android NDK JNI 的简单使用

    为什么80%的码农都做不了架构师?>>>    1.why: 为啥学 NDK开发,其实是为了项目需要调用底层的一些C/C++的一些东西:另外就是为了效率更加高些: Android n ...

  6. android 使用c 代码实现,JNI开发实现helloworld,调用自己的C代码实现(1)

    JNI开发,实现自己的C代码,helloworld 在这里实现一个简单的demo,完成加载自己的C代码 使用Android studio,一步一步教你实现在屏幕上显示出helloworld 如下图显示 ...

  7. Android NDK开发: 通过C/C++调用第三方so库

    文章目录 一.编写so库代码 二.安装Android NDK 三.编译so库 3.1 编辑Android.mk 3.2 编辑Application.mk 3.3 编译 四.集成到Android工程中 ...

  8. Android调用JNI的实现方法

    目录 概述 调用JNI接口的方法 后记 概述 Android调用JNI库大致包括两种情况: 提供Java接口和so库: 这种类型的调用比较简单,要做的只是把so库放到APK或者Android系统中,之 ...

  9. android jni不适用ndk,Android NDK编译之undefined reference to 'JNI_CreateJavaVM'

    利用Android NDK编译动态库,在C文件中调用了两个JNI函数:JNI_GetDefaultJavaVMInitArgs和JNI_CreateJavaVM.编译的时候始终报以下错误: XXX: ...

最新文章

  1. js实现对象不可更改
  2. Openstack迁移DDH最佳实践
  3. 中南大学计算机在线考试答案,中南大学计算机考试复习题
  4. Eclipse报错 due to restriction on required library C:/Java/jdk1.6.0_10/jre/lib/rt.jar 解决方案
  5. 职场 | 3天准备5天面试,跳槽完成
  6. 如何通过使用 64 位版本 Windows 查看系统注册表 WOW6432Node
  7. 高质量代码才能最快投入生产
  8. 大数据学习笔记19:MR案例——汇总三科成绩表文件
  9. 天池csv转成grt代码里的luna的csv,pandas库来操作csv文件(pd.DataFrame,pd.concat,pd.Series,to_csv等)实现
  10. SynchronizedMap和ConcurrentHashMap 区别
  11. 【Asp.Net】GridView控件中Datakeys和DataKeyNames的说明
  12. python能做什么工作知乎-python能做什么知乎
  13. CCFCSP 201803-2碰撞的小球
  14. php远程登录linux,如何远程连接linux桌面
  15. 推荐算法DCN(Deep Cross)自动构造高阶交叉特征原理介绍
  16. 年会抽奖程序,基于 Express + Three.js的 3D 球体抽奖程序
  17. [机缘参悟-53]:《素书》-2-俊、豪、杰[正道章第二]
  18. vue封装图片滑块验证+读秒组件
  19. Unmarshaller转换xml到对像为空的问题
  20. JPEG图像格式Jphide隐写

热门文章

  1. 服务器邮件权限的开放,企业邮件服务器收发邮件权限
  2. android从服务检查,android开发分享Android:你如何检查是否启用了特定的AccessibilityService...
  3. 将视图转为image_JavaScript二进制数组(2)TypedArray视图
  4. ksu7对讲机调频软件_科普 | 数字对讲机的群呼功能原理是什么?你了解多少?...
  5. mariadb mysql表_mysql/mariadb学习记录——创建删除数据库、表的基本命令
  6. golang 数组组合成最小的整数_golang数组-----寻找数组中缺失的整数方法
  7. android 图片分析,Android图片处理实例分析
  8. 目标检测第1步:如何在Windows 10下安装MiniConda?
  9. java验证码工具_java 验证码工具
  10. php设置mysql 编码_php怎么设置mysql编码?