Android应用的跨语言调用小结
2012-03-20 20:09
337 查看
最近在搞客户端应用,对这几天学到的东东做下小结。
1、Android是基于linux kernel,用C来写的部分代码。
2、Android应用程序是用java语言来写的,开发工具一般用eclipse。
3、Android应用程序如果想要调C写的代码怎么办?
这个也比较简单,我们先回想下在C#里是如何调C++的,想起来了一个关键词,就是DLLImport,具体的用法为:【DLLImport("user32.dll")】:告诉.NET的公共语言运行时CLR,我想调用的非托管代码在user32.dll中,帮我把这个DLL加载到内存中来,然后采用public static extern 返回值 方法名(参数),可以调用外部dll定义的方法了,不过,还有一个比较痛苦的事就是,不同语言下的类型转换,譬如:指针、数组的转换,要一个方法一个方法地调试了。
在Android平台上调C写的代码,道理、过程也差不多,只不过,也得破费一翻周折,先普及下linux上的相关知识:
.c--C语言代码文件
.cpp-C++语言的代码文件
.h-C或C++程序的头文件
.o --程序目标文件:就是源代码编译后但未进行链接的那此中间文件,相当于windows平台下的.obj文件。
.a--静态链接库文件,相当于windows平台下的.lib文件 。一般需要头文件,.h文件才能调用。
.so类库文件。
基础知识了解了,再理一个转换的过程:
a)首先要将c代码放到linux下(注:windows上也有linux虑拟机工具),编译成.a或.so文件。
b)在eclipse工具里就可以直接加载.a和.h文件,或者直接调成.so文件就可以编译。
c)在直接调成方法之后,也还有一件事就是:要进行Java Native Interface转换,跟上面提到的DLLImport类似。
1、Android是基于linux kernel,用C来写的部分代码。
2、Android应用程序是用java语言来写的,开发工具一般用eclipse。
3、Android应用程序如果想要调C写的代码怎么办?
这个也比较简单,我们先回想下在C#里是如何调C++的,想起来了一个关键词,就是DLLImport,具体的用法为:【DLLImport("user32.dll")】:告诉.NET的公共语言运行时CLR,我想调用的非托管代码在user32.dll中,帮我把这个DLL加载到内存中来,然后采用public static extern 返回值 方法名(参数),可以调用外部dll定义的方法了,不过,还有一个比较痛苦的事就是,不同语言下的类型转换,譬如:指针、数组的转换,要一个方法一个方法地调试了。
在Android平台上调C写的代码,道理、过程也差不多,只不过,也得破费一翻周折,先普及下linux上的相关知识:
.c--C语言代码文件
.cpp-C++语言的代码文件
.h-C或C++程序的头文件
.o --程序目标文件:就是源代码编译后但未进行链接的那此中间文件,相当于windows平台下的.obj文件。
.a--静态链接库文件,相当于windows平台下的.lib文件 。一般需要头文件,.h文件才能调用。
.so类库文件。
基础知识了解了,再理一个转换的过程:
a)首先要将c代码放到linux下(注:windows上也有linux虑拟机工具),编译成.a或.so文件。
b)在eclipse工具里就可以直接加载.a和.h文件,或者直接调成.so文件就可以编译。
c)在直接调成方法之后,也还有一件事就是:要进行Java Native Interface转换,跟上面提到的DLLImport类似。
相关文章推荐
- Android应用的跨语言调用小结
- IPC(进程间通信),Remote Call(远程调用),IDL(接口描述语言)架构及其在BMP(BREW移动平台),Android中的应用浅析
- Android 调用其他应用-QQ音乐
- android 两个应用之间的通信与调用
- 【Android N兼容问题】Android N上系统预置应用调用so库失败问题的看法
- android 调用系统其他已经安装的应用的方法
- 移动应用间调用(Android/iOS)
- Android下编译自己的库文件jar并在应用中调用
- Android应用开发—onSaveInstanceState方法什么时候被调用?
- Android app应用多语言切换功能实现
- Android调用系统分享,指定某些应用来分享
- 使用intent调用Android系统自带应用
- android 应用内切换语言
- 关于Android手机应用中如何调用手机震动
- Android应用开发笔记(1) 调用打电话和发短信、收短信接口、发Email
- Android 系统应用调用,intent 的使用方法总结
- 在android中使用intent来调用系统的应用中的删除功能
- Android应用开发笔记(1):调用打电话和发短信、收短信接口、发Email (Call, Dial, SMSManager, Broadcast, Email)
- Android调用手机中的应用市场,实现评分功能
- 调用Android常用应用的接口