2011年8月15日

基于 Android NDK 的学习之旅-----Java 调用C(附源码)

摘要: 基于 Android NDK 的学习之旅-----Java 调用C随便谈谈为什么要Java调用C 吧:我认为:1、 有些公司开发Android项目的时候, 许多组件功能可能是C中已经实现了,所以我们没必要同样的功能又在java中实现一遍。例如我之前做的一个项目,公司C引擎已经很成熟了,所以直接在java中封装好接口,由C去实现。2、C的速度一般是java的10-20倍把,有些对速度要求高的就需要在C中实现。例如我以前在Android项目中有要求批量(10000++)生成MD5的值,由于测试对java中直接生成的效果不满意,所以后面就换成C去实现了。3、 …..不罗嗦了,直接开始吧。1、主要流程 阅读全文

posted @ 2011-08-15 22:46 陆晓峰 阅读(14428) 评论(4) 推荐(4) 编辑

基于 Android NDK 的学习之旅-----JNI 数据类型

摘要: 基于 Android NDK 的学习之旅-----JNI 数据类型经典老套流程,学编程语言东西,先学它最基础的数据类型,JNI也是如此。JNI 定义了一系列基本数据类型和引用数据类型与java想对应。1、基本数据类型下面一张表是描述了 Java 基本数据类型和JNI中基本数据类型的相对应关系已经占用空间大小。随便观察就能发现,其实就基本数据类型而已,JNI基本数据类型只是比Java基本数据类型前多了个’j’而已当然,JNI中还有个Java中没有的jsize,定义如下:typedef jint jsize;其实jsize整型是用来描述基本指标和大小,没有什么神秘的。2、引用数据类型JNI 引用类 阅读全文

posted @ 2011-08-15 13:55 陆晓峰 阅读(6663) 评论(0) 推荐(3) 编辑

2011年8月14日

基于 Android NDK 的学习之旅-----JNI LOG 打印(附源码)

摘要: 基于 Android NDK 的学习之旅-----JNI LOG 打印程序都是调出来的。下面我介绍下JNI层的log打印方法的使用,类似与Android sdk提供的log1、Android 应用层 MainActivity.java主要功能代码a)静态载入 So 库 b)声明本地方法c)调用本地方法代码附有注释如下:public classMainActivity extends Activity { //也就是你mk配置文件中的 LOCAL_MODULE := NDK_02 private static final String libSoName ="NDK_02"; 阅读全文

posted @ 2011-08-14 18:34 陆晓峰 阅读(21291) 评论(2) 推荐(0) 编辑

基于 Android NDK 的学习之旅-----HelloWorld (附源码)

摘要: 基于 Android NDK 的学习之旅-----HelloWorldHelloWorld作为所有编程语言的起始阶段,占据着无法改变的地位,所有中/英/法/德/美……版本的编程教材中,hello world总是作为第一个TEST记录于书本之中,所有的编程第一步就在于此了!经典之中的经典!hello world! 下面介绍下NDK开发的Hello World1、Android 应用层 MainActivity.java主要功能代码a)静态载入 So 库 static { System.loadLibrary(libSoName);}b)声明本地方法public native String get 阅读全文

posted @ 2011-08-14 13:11 陆晓峰 阅读(10382) 评论(2) 推荐(3) 编辑

2011年8月13日

基于 Android NDK 的学习之旅-----Android.mk 介绍

摘要: 基于 Android NDK 的学习之旅-----Android.mk 介绍一个Android.mk file用来向编译系统描述你的源代码。具体来说:该文件是GNU Makefile的一小部分,会被编译系统解析一次或多次。你可以在每一个Android.mk file中定义一个或多个模块,你也可以在几个模块中使用同一个源代码文件。编译系统为你处理许多细节问题。一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个Shell 阅读全文

posted @ 2011-08-13 22:04 陆晓峰 阅读(27350) 评论(7) 推荐(3) 编辑

基于 Android NDK 的学习之旅-----环境搭建

摘要: 基于 Android NDK 的学习之旅-----环境搭建工欲善其事 必先利其器 , 下面介绍下 Eclipse SDK NDK Cygwin CDT 集成开发环境的搭建。1、Android 开发环境搭建Android开发环境搭建不是重点,相信看此文章的很多人都已经搭建成功,这里随便概述性的说说。1) 下载 JDK2) 下载 Eclipse3) 下载 Android SDK4) 启动Eclipse , 安装 ADT2、下载安装Android NDK我使用的NDK版本为r5Google 出的最新NDK 为 r6 下载地址为http://developer.android.com/sdk/ndk/ 阅读全文

posted @ 2011-08-13 10:44 陆晓峰 阅读(43961) 评论(34) 推荐(12) 编辑

2011年8月12日

基于 Android NDK 的学习之旅-----序言

摘要: 前些日子做了个Android项目, 引擎层 用C的, 准备写这个系类的文章,借此跟朋友来分享下我NDK开放的经验以及自己知识的总结和备忘。希望能给需要这方面资料的朋友提供一定的帮助。主要涉及到: 环境的搭建Android.mk 文件的 配置 HelloWorldNDK 打印信息JNI 数据类型Java 调用 CC 调用 Java数据的传输(基本数据类型的传输,引用数据类型的传输,数组的传输)在C中新建Java对象Java方法在C中的映射(包括了签名的使用)C中如何调用Java的方法(包括了静态的和非静态的)JNI中资源的释放 等等先详细介绍下NDK, JNI:What isthe NDK?Go 阅读全文

posted @ 2011-08-12 14:06 陆晓峰 阅读(4771) 评论(10) 推荐(4) 编辑

2011年7月27日

Xmpp 随记

摘要: Asmack 要 监听扩展 包 必须先 添加 节点名和命名空间 (原因:SmackX.jar /META-INF/smack.providers 中,有许多 开始就必须加载的配置,而Android中不会自动加载,所以要手动添加)如: 要监听 MessageEvent (正在输入,送达,已读,离线 等...)在连接后添加拦截connection.connect();ProviderManager pm = ProviderManager.getInstance();//用户扩展包 拦截pm.addExtensionProvider("x", "jabber:x:ev 阅读全文

posted @ 2011-07-27 20:48 陆晓峰 阅读(973) 评论(0) 推荐(3) 编辑

2011年7月13日

Sqlite 修改字段名

摘要: Sqlite 不支持直接修改字段的名称。我们可以使用别的方法来实现修改字段名。1、修改原表的名称ALTER TABLE table RENAME TO tableOld;2、新建修改字段后的表CREATE TABLE table(ID INTEGER PRIMARY KEY AUTOINCREMENT, Modify_Username text not null);3、从旧表中查询出数据 并插入新表INSERT INTO table SELECT ID,Username FROM tableOld;4、删除旧表DROP TABLE tableOld; 阅读全文

posted @ 2011-07-13 09:32 陆晓峰 阅读(19308) 评论(0) 推荐(1) 编辑

2011年7月9日

String InputStream 转换

摘要: //String2InputStreamprivate InputStream String2InputStream(String str){ ByteArrayInputStream stream = new ByteArrayInputStream(str.getBytes()); return stream; }//inputStream2Stringprivate String inputStream2String(InputStream is){ BufferedReader in = new BufferedReader(new InputStreamReader(is)); St 阅读全文

posted @ 2011-07-09 14:05 陆晓峰 阅读(271) 评论(0) 推荐(0) 编辑

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示