- 浏览: 22843 次
最新评论
文章列表
在上一篇文章中搭建好了Eclipse下NDK环境,现在开始NDK的开发:
1、打开Eclipse,新建一个Android Project,名字就叫HelloNdk,package:org.android.code
2、然后在org.android.code 包里新建一个helloNdk的Class。.
在该类中声明本地调用的方法,如下图:
然后将项目编译一下,让Eclipse生成helloNdk的class文件,用于生成.h文件。
3、生成.h文件
启动cmd,进入项目的bin\class目录下,输入javah+空格+包名.类名。
4、编写C/C++代码
在项目中新 ...
开发应用一个关键的步骤是调试,对于NDK的C代码调试有很多种方法,
对于和Android平台相关性不大的部分代码,可以单独创建一个C/C++项目,编写测试代码,测试完成后,再编译成NDK动态库或静态库模块。
使用NDK-GDB,NDK-GDB的命令行调试方法和GDB类似,网络有很多关于GDB的教程
使用Eclipse+CDT+GDB调试android NDK程序
实时调试,不过这种方法设置起来不是十分方便,调试起来需要在GDB和Eclipse之间来回切换,适合于有经验的程序员。
这里介绍一个开发嵌入式系统调试的“终极工具:-)”-printf. 开发嵌入式系统调试常用的 ...
- 2012-07-09 00:13
- 浏览 693
- 评论(0)
配合android.mk 使用的make 文件还有一个application.mk ,大部分情况无需修改该文件,下面也来自网络翻译
Application.mk文件
简介:
—————————–
要将C\C++代码编译为SO文件,光有Android.mk文件还不行,还需要一个Application.mk文件。
本文档是描述你的Android应用程序中需要的本地模块的Application.mk的语法使用,要明白如下。
Application.mk目的是描述在你的应用程序中所需要的模块(即静态库或动态库)。
Application.mk文件通常被放置在$PROJECT/jni/A ...
- 2012-07-09 00:10
- 浏览 815
- 评论(0)
NDK项目一个重要组成是它的make 文件 –android.mk. 下面部分来自网络翻译(省得我再翻译了:-).
注:大部分情况只需参考HelloJni 和twoLibs 的android.mk 文件即可,如果你想搞清楚android.mk 中定义变量的具体含义,可以参考下面翻译。
...
- 2012-07-09 00:02
- 浏览 781
- 评论(0)
做Android NDK开发时,c代码需要用ndk-build来进行编译,而java代码则需要用Android sdk编译。
编译c代码有两种方法:
一、写好c代码后,然后用cygwin搭建ndk-build环境,用ndk-build来编译出相关的.so文件(libs目录)之后,
再用eclipse里去编译java程序,从而使用.so文件。该方法在上一篇搭建NDK环境有介绍。
二、利用eclipse完全可以达到编译.so的目的。
首先,先装上CDT吧,这是Eclipse的C/C++环境插件,装上它后你就可以在Eclipse里创建C/C++项目和代码文件了。插件的安装有两种方式,一种是 ...
- 2012-07-08 23:56
- 浏览 4701
- 评论(0)
一、下载Android NDK
您可以下载NDK r8 for Windows或NDK r8 for Windows安装包,下载地址:http://developer.android.com/sdk/ndk/index.html
下载后解压到你喜欢的路径,例如笔者的路径: D:\Develope\Android\android-ndk-r8。注意跟Android安装一样,目录不要有空格。
Android NDK包含build,docs,platforms,prebuilt,samples,sources,tests,toolchains,GNUmakefile,ndk-buil ...
- 2012-07-08 18:51
- 浏览 833
- 评论(0)
JNI:全称Java Native Interface。是java平台的一部分
JNI允许Java代码和其他语言写的代码进行交互。JNI 是本地编程接口,它使得在 Java 虚拟机(VM) 内部运行的 Java 代码能够与用其它编程语言(如 C、C++ 和汇编语言)编写的应用程序和库进行交互操作。类似于.Net
Framework上的p/invoke,可以让C#或Visual Basic.Net可以调用C/C++的API,所以说JNI和Android没有关系,在PC上开发Java的应用,如果运行在Windows平台使用 JNI是是经常的。比如一些算法的实现。
JNI的副作用:
请记住, ...
- 2012-07-08 17:42
- 浏览 988
- 评论(0)
把十六进制颜色转化为color对象
ColorTranslator.FromHtml("#FF0000")
或 ColorTranslator.FromHtml("Red");
把color对象转化为十六进制颜色
ColorTranslator.ToHtml(Color.FromArgb(255,255,255)) 或 ColorTranslator.ToHtml(Color.Red);
转自:http://www.2guys.cn/collection/17461975481975.html
- 2012-05-29 16:44
- 浏览 2215
- 评论(0)
在VC2003中新建一程序,选择项目--》添加类--》MFC--》类型库中的MFC类。
然后选择“文件”单选按钮,默认选择的是“注册表”单选按钮。
从“位置”的“...”按钮(浏览)中选择word安装路径中的MFWORD.OLB文件,
然后在“列表”中就会显示所有的类型,选择需要使用的类型,添加到右侧。
完成后,会把选择的类的头文件添加到你的项目中,这样你就可以使用这些类
操作word文档了。
首先要包含头文件,即需要的类所在的.h文件。
以下为使用这些类进行读取Word中表格数据的实现:
CApplication app;
CDocuments docs;
CDo ...
- 2011-11-30 18:15
- 浏览 821
- 评论(0)
sqlite3记录被清除之后,如果表中有自增长字段,下次再插入数据,会继续延续之前自增长字段的历史记录。
清除方法:
在Sqlite3建立带自增长字段的表时,Sqlite3会创建这个表存放自增长序列:
“sqlite_sequence”
可以用Create、Read、Update、Delete操作该表。
使用Delete和Update可以清除和修改slite_sequence存储的表的自增长id
delete from sqlite_sequence where name='TableName'; --注意表名区分大小写
update sqlite_se ...
- 2011-09-08 08:39
- 浏览 1468
- 评论(0)
列中数据的最大大小(以字节为单位)。默认值是从参数值推导出的。
备注
设置Size仅影响参数的输入值。此属性不影响返回值和输出参数。
Size属性用于二进制和字符串类型。对于SqlType.String类型的参数,
- 2011-09-04 21:10
- 浏览 702
- 评论(0)
BYTE byteArray[100]; // with some values
CString strByte;
for ( int i = 0; i < 64; i++ )
{
strByte.Format( "%02x", byteArray[i]);
// output the string
}
- 2011-08-23 20:06
- 浏览 764
- 评论(0)
TCHAR.H Routine
_UNICODE & _MBCS Not Defined
_MBCS Defined
- 2011-08-22 08:52
- 浏览 1656
- 评论(0)
char :单字节变量类型,最多表示256个字符,
wchar_t :宽字节变量类型,用于表示Unicode字符,
它实际定义在<string.h>里:typedef unsigned short wchar_t。
为了让编译器识别Unicode字符串,必须以在前面加一个“L”,定义宽字节类型方法如下:
wchar_t c = `A' ;
wchar_t * p = L"Hello!" ;
wchar_t a[] = L"Hello!" ;
其中,宽字节类型每个变量占用2个字 ...
- 2011-08-05 10:34
- 浏览 776
- 评论(0)
#include <string>
#include <vector>
#include <iostream>
using namespace std;
typedef basic_string<char>::size_type S_T;
static const S_T npos = -1;
////trim指示是否保留空串,默认为保留。
vector<string> tokenize(const string& src, string tok, bool trim=false, string null_subst=& ...
- 2011-07-31 13:31
- 浏览 910
- 评论(0)