Android NDK开发 手稿
文章平均质量分 84
喝醉了的熊猫
Android 系统开发,Android通信应用开发,Android移动应用开发,智能语音设备开发,个人开源库 : https://github.com/MMLoveMeMM
展开
-
Android Jni中JNI_OnLoad的地位和使用
在jni中,或者android系统源代码中,最常用到的是通过JNI_OnLoad(...)方法,对方法进行注册,而不会像前面的测试demo,生成.h头文件,然后写一个.c的去实现.h中的方法,JNI_OnLoad的引入更加注重c++的使用,至少偏向c++,android系统源代码也是如此,到了下面往往是c++做了一个过渡,但是再进一步深入,最终还是c实现的,比如网络协议等,这一点可以看出实际上用到原创 2015-12-28 10:25:33 · 6498 阅读 · 0 评论 -
Android Jni层调用应用层(Java)的方法
android的应用层java能够调用jni层的函数,那么jni层也做了能够调用应用层java的方法,其实这个东西还真的涉及程序的编译原理方面的,不过这个直接说就是利用了反射,之前见过最多的是java反射java类中的方法,我的博客中还专门写了一份手稿介绍java反射的使用,jni层调用应用层的java,通过是动用了反射的原理,反射出来给jni层使用,所以可想而知,反射的能量是巨大的.下面给出原创 2015-12-28 12:16:07 · 613 阅读 · 0 评论 -
Android NDK环境测试
Android NDK开发的环境很多,windows,mac,还是Ubuntu,设置cygwin,个人更中意mac和Ubuntu,cygwin用着不习惯,感觉在windows上面装一个cygwin像一个累赘一样.首先很多不大工程的so开发基本上都会直接涉及到javah这个命令行的使用,这个可以在cmd.exe中输入javah -help查看一下命令有哪些调用方式.这里不具体介绍,只在下面的工程原创 2015-12-24 12:12:30 · 1590 阅读 · 0 评论 -
Android NDK Log信息打印
对于一个程序来说,什么都可以不开始,但是调试信息首先要出来,优先解决log信息.所以在第一篇的基础上面加上在jni中添加log信息,具体操作如下: : 修改Android.mk文件,在其中添加Android的Library库进来:LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE :=durianjniL原创 2015-12-24 16:02:46 · 518 阅读 · 0 评论 -
Android java数据类型和jni数据类型对应关系
由于android app主要是以java为主的,然后java的数据类型和jni里面的c/c++的数据类型有有一定差异的,这种差异主要区别在于一个数据类型暂用的位宽可能不一样,但是还好的是,对应关系还是基本上能够吻合的,比如参考下面的表单:java和c/c++ 数组对应,以及数组操作函数:JNI通过JNIEnv提供的操作Java数组的功能。它提供了两个函数:一个是操作java的简单型数原创 2015-12-24 17:32:13 · 1436 阅读 · 0 评论 -
Android NDK中数据类型传递使用
根据上一篇对应的数据类型关系,从这一篇开始一种一种的对应进行测试.工程的话还是用第一篇中的那个工程: : 先介绍整型 :在工程lib包下新建DurianJniInteger.java的类型,添加内容如下:/** * @Title: DurianJniInteger.java* @Package com.durian.jnienv.lib* @Description: TODO原创 2015-12-24 17:43:27 · 833 阅读 · 0 评论 -
Android Lame c库应用
废话不多说. : 首先可以从网上面下载lame库; : 新建一个android工程,如前面博客的添加所有的配置文件和jni目录; : 添加lame c文件库到jni中:解压后添加下面两个: : 根据 中的文件目录,编写makefile文件:LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE原创 2016-02-03 11:24:50 · 362 阅读 · 0 评论 -
Android Jni Android.mk常用语句
只要涉及JNI开发都涉及到Android.mk编写,它也是一种makefile语言.以上一篇博客中提供的工程为例! : 打印信息 : 既然是一种简易语言那么首先应该知道能够打印脚本信息的语法部分:一个是基本信息类型,一个是警告,错误类型$(info TEXT......) 这个函数执行的时候,会输出: TEXT... ...$(error TEXT......)这个函数被执行原创 2016-02-03 17:59:57 · 582 阅读 · 0 评论 -
Android AS平台jni环境配置
废话不多说! : 新建一个DurianAsJni的android工程. : 新建一个jni的java接口类:package org.durian.durianasjni;/** * Project name : DurianAsJni * Created by zhibao.liu on 2016/3/28. * Time : 19:33 * Email warden_sp原创 2016-04-05 20:03:55 · 1608 阅读 · 0 评论