Android工程开发有感

 

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里面关于宽度和高度的属性是必要的,如果删除程序会出错。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值