- 博客(18)
- 资源 (21)
- 收藏
- 关注
原创 jni使用基础(九)之c调用java事例demo
1.Activitypackage com.devchina.ndk4;import android.app.Activity;import android.os.Bundle;import android.view.View;public class DevchinaActivity extends Activity { @Override publ
2012-05-25 12:41:31 840
原创 jni使用基础(八)之jni使用流程及C调用java简单说明
jni使用步骤:1.定义好native接口。2.使用javah工具,生成头文件。3.根据头文件,创建c文件。4.编写Android.mk文件。5.通过cygwin,进入到该工程目录,通过ndk-buld命令,编译c文件,生成so库文件6.即可完成调用 怎样在c中调用java?也就是要在c代码中,new出java对象,然后再调用java对象中的方法即可。
2012-05-25 10:58:15 679
原创 jni使用基础(七)之java调用c事例Demo
1.界面:package com.devchina.ndk3;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.Toast;public class DemoActivity extends Activity { static{
2012-05-24 18:07:48 885
原创 jni使用基础(六)之在c代码中使用logcat
在C代码中使用logcat:1.在Android.mk文件中增加LOCAL_LDLIBS += -llog // -l 是(-lab)增加库文件的语法,是在编译时,使用该库需要的语法。 // log 是在ndk中的liblog.so文件 若再需要增其它的库,只需","分隔:如:LOCAL_LDLIBS += -llog, -lGLESv2
2012-05-24 12:17:36 908
原创 jni使用基础(五)之ndk常见错误
常见错误:1.方法名与c语言实现的签名不对应。 异常:UnsatisfiedLinkError 2.如果在执行ndk-build时,出现make:*** Error 1 Error的id为1,C代码的源文件出现了问题。 从上往下解决异常。 3.android.mk文件配置错误 mak:*** No rule to make t
2012-05-24 11:29:21 697
原创 jni使用基础(四)之javah生成头文件
javah使用:帮助我们生成头文件的工具 怎样使用javah?1.先在命令行下运行:javah。如果能执行java而不能执行javah,就需要配置环境变量。2.cd进入到java的目录文件下,先用javac把.java文件生成.class文件。3.在.class文件目录下执行javah,生成头文件(注意:.class文件要在相对应的包目录结构下)如:用eclipse的工程,
2012-05-24 11:09:42 2767
原创 jni使用基础(三)之Android.mk文件详解
Android.mk文件详细说明:LOCAL_PATH:=$(call my-dir)//调用编译链的函数 LOCAL_PATH是定义源文件在哪个目录用的.my-dir 是个定义的宏方法, $(call my-dir)就是调用这个叫 my-dir的宏方法,这个方法返回值就是Android.mk文件所在的目录 include $(CLEAR_VARS)//类似工具的初始化操作
2012-05-24 09:52:05 923
原创 jni使用基础(二)之调用及工具使用
使用jni步骤:一、JAVA代码中写声明native 方法二、创建jni目录,编写c代码,方法名字要对应三、编写Android.mk文件四、Ndk编译生成动态库五、Java代码load 动态库.调用native代码 一,怎样写Android.mk文件 LOCAL_PATH := $(call my-dir) #注意:在此句后不能有空格,否则造成无法编译。
2012-05-23 17:43:16 846
原创 Jni使用基础(一)之简单介绍说明
JNI(Java Native Interface,JAVA原生接口) Jni 是一个协议,用来沟通java代码和外部的本地代码(c/c++)相互调用。 为什么要进行交互? 首先,Java语言提供的类库无法满足要求,且在数学运算,实时渲染的游戏上,音视频处理等方面上与C/C++相比效率稍低。 然后,Java语言无法直接操作硬件,C/C++代码不仅能操作硬件而且还能发挥硬件最佳
2012-05-22 22:42:16 697
原创 c语言基础(六)之类型
多级指针简单demo:main(){ int i = 5;int* p = &i;int** q = &p;int*** r = &q;printf(" i 的值=%d\n", ***r);//打印结果为5} 函数指针demo:int add(int x,int y){ printf("x+y=%d\n",x+y);} mai
2012-05-22 20:07:50 543
原创 c语言基础(五)之内存、堆栈区
指针运算:指针的运算在数组的运算中才有意义。其它指针操作的运算都无意义。 只要是指针类型,它在内存中所占的长度都是4个byte。(前提是32位系统) 传统数组被创建出来,它是被创建在栈空间上的。也就是说程序员没有办法去清空栈空间上的内容。 动态内存分配:使用malloc函数,能够动态分配内存。注意要引入#include函数头文件malloc(a);a表示in
2012-05-22 19:04:04 589
原创 c语言基础(四)之指针
c语言指针常见错误1.未经过初始化的指针变量,不能被使用2.指针类型,需要根据不同的变量类型,定义不同的指针,不同的指针类型,不能相互转化。3.函数的变量不能跨函数使用。(不能使用指针去访问已经失去作用范围的变量。 如:主函数去使用子函数变量的值是不行的) c语言*号的
2012-05-22 16:44:34 373
原创 程序装载及执行说明
程序执行流程:java 程序代码执行流程: java源文件----->java编译器------>java字节码(class文件)----->类装载器------> java解释器/编译器加载到运行时系统(java虚拟机)----->操作系统---->硬件 怎样把程序装载到操作系统中? 系统给每个程序把内存分成四个分区:
2012-05-22 14:49:19 579
原创 c语言基础(三)之数据交换
简单数据交换Demo: #includemain(){ int i=3; int j= 5; int temp ; temp = i; i = j; j = temp; printf("i = %d\n",i); printf("j = %d\n",j);
2012-05-22 13:36:59 605
原创 c语言基础(二)之指针事例
这章主要讲解指针:Demo事例说明:#includemain(){ int i = 3;//定义一个变量 ,变量名为i,变量类型为int类型int* p ; //定义一个变量,变量名为p,变量类型为int*类型 //int* 类型是一个指针变量,是一个存放地址的类型,只能存放int类型数据的地址 //int** 是一个存放指针
2012-05-22 13:05:42 432
原创 C语言基础(一)之数据类型及指针
C的基本数据类型包括:字符型(char)、整形(int/short/long)和浮点型(float/double)。 导出数据类型包括:T*(指针类型),enum(枚举),struct{....}(结构体类型),union{...}(共用体类型),T[...]数组类型,文件类型和函数类型 c语言输入输出函数:%d int%ld long int%c
2012-05-21 15:53:50 570
原创 数据类型
学习程序,应从最基本的类型开始,好高骛远的学习,是没有学习的根基。 大楼地基不好,建再高的楼也很容易倒塌。 java基本类型: 数据类型关键字占用比特数(位)字节数取值范围缺省数值 布尔型boolean 8 1true,false
2012-05-21 09:42:18 454
原创 成长中需要记录
还记得从一开始学习技术,到最后工作的过程,自己都是跌跌撞撞的走过来的。恍然之间,才明白时间过了,记忆也淡了。 生活的过程不仅仅是要用心去记忆,也还是需要我们把它敲打成文字,留在某个角落。 以前自己也是不太爱花时间去写很长的博客,特别对技术上的文章,感觉写起来也很费劲,所以,自己一直把技术博客当成了一项太艰难的事情。自己也一直从未去实施记录。 但是,当自己接触的东
2012-05-16 09:57:19 557
模仿MIUI设置页面顶部Button
2012-11-27
实现新浪微博消息页面左右滑动页面方式二
2012-11-25
实现新浪微博消息页面左右滑动页面
2012-11-25
实现网易新闻客户端左右滑动广告
2012-11-25
sqlite3安装包
2012-07-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人