Android工程开发有感
2010-12-23 15:56
295 查看
8月份接到安排,要把产品移植到ANDROID上,一直忙了两个多月才算发出去一个像样的版本。当然总算是发出去了,这两天就不用像以前那么忙,闲来写点东西,算是个小的总结吧。
google对这款系统产品赋予了艰巨使命,希望以此在移动领域分得一片天地。不过我觉得这款产品可能发的是有点急了,有些地方还真的不是太尽如人意。
项目的需求是把代码移植到ANDROID上,因此主要工作就是写接口。不过比较头痛的是ANDOIRD采用的是JAVA编程,而项目现成的代码是C/C++写的,所以就得使用NATIVE/JNI。在JAVA里面调用C代码要用NATIVE。NATIVE是JAVA的关键字,作用就是在JAVA里面声明一个功能函数,然后去C里面去实现。从C里面调用JAVA需要使用JNI。JNI是一个不错的东西,但在参与这个项目之前,我可是闻所未闻。JNI主要包含JavaVM和JNIEnv,前者表示JAVA虚拟机,后者是调用环境,实际上是一个包含了所有可用函数指针的结构体。开始的时以为JNIEnv对一个程序来说是唯一不变的,等后来代码运行起来才知道并不这样。对一个程序来说JavaVM才是唯一不变的,所以可以存起来,然后通过JavaVM获得JNIEnv。代码如下(*vm)->GetEnv(vm, (void**) &env, JNI_VERSION_1_4);
把代码写完了就可以开始编译了。编译用到的是NDK-BUILD,早一点的版本也有用make的。不过我下的这个版本已经开始建议用NDK-BUILD了。调试用的是NDK-GDB。到这要说一下了:ANDROID对JAVA代码支持还可以,单步调,下断点,都没的说;但是对C/C++的支持就没那么友好了。
(待续……)
javap -s xunlei/com/Thunder
main.xml里面关于宽度和高度的属性是必要的,如果删除程序会出错。
google对这款系统产品赋予了艰巨使命,希望以此在移动领域分得一片天地。不过我觉得这款产品可能发的是有点急了,有些地方还真的不是太尽如人意。
项目的需求是把代码移植到ANDROID上,因此主要工作就是写接口。不过比较头痛的是ANDOIRD采用的是JAVA编程,而项目现成的代码是C/C++写的,所以就得使用NATIVE/JNI。在JAVA里面调用C代码要用NATIVE。NATIVE是JAVA的关键字,作用就是在JAVA里面声明一个功能函数,然后去C里面去实现。从C里面调用JAVA需要使用JNI。JNI是一个不错的东西,但在参与这个项目之前,我可是闻所未闻。JNI主要包含JavaVM和JNIEnv,前者表示JAVA虚拟机,后者是调用环境,实际上是一个包含了所有可用函数指针的结构体。开始的时以为JNIEnv对一个程序来说是唯一不变的,等后来代码运行起来才知道并不这样。对一个程序来说JavaVM才是唯一不变的,所以可以存起来,然后通过JavaVM获得JNIEnv。代码如下(*vm)->GetEnv(vm, (void**) &env, JNI_VERSION_1_4);
把代码写完了就可以开始编译了。编译用到的是NDK-BUILD,早一点的版本也有用make的。不过我下的这个版本已经开始建议用NDK-BUILD了。调试用的是NDK-GDB。到这要说一下了:ANDROID对JAVA代码支持还可以,单步调,下断点,都没的说;但是对C/C++的支持就没那么友好了。
(待续……)
javap -s xunlei/com/Thunder
main.xml里面关于宽度和高度的属性是必要的,如果删除程序会出错。
相关文章推荐
- Android开发中Eclipse如何重新编译整个工程
- Android开发:Android导入一个工程时提示 Invalid project description的解决方法
- Android游戏开发之推箱子有感
- 购买开发板开发Android有感
- Android 大杂烩工程之ListView的开发2以及数据仓库开发模式
- AR移动应用开发(二) Unity工程嵌入Android
- Android开发:app工程集成银联支付功能(客户端)
- android开发里跳过的坑-AS导入NDK工程提示错误 No such property: sdkHandler for class: com.android.build.gradle.Librar
- 使用Kotlin开发Android 创建工程与配置
- android开发入门教程---新建一个android工程
- android stutio eclipse共同开发使用svn,android stutio倒入svn的eclipse工程
- android开发游记:android studio工程 转换为 eclipse工程
- Android优美代码赏析:上层开发与导入sample到eclipse工程
- 用Intellij IDEA开发Android依赖第三方库和工程
- 如何在eclipse的android工程中添加外部javadoc.jar包,方便开发
- Eclipse下Android工程开发问题解决办法合集
- AndroidStudio NDK开发、调试测试工程
- android dev 开发经典工程教材
- 【Android开发学习笔记】【第一课】初识New Project,工程文件介绍
- Andriod开发教程 怎么导入现有的Android工程