Android NDK

研究了一晚上Android NDK,但最后deme还的没跑起来,忧伤中⋯⋯

但也有收获,收获了不少资源、教程链接,自己备忘一下,也给别人提供点参考:


1、首先研究了Android NDK开发的目的:

a、

应用程序开发分为不同的层次,从最复杂的NDK ==JDK ==》中间件 ==》图形界面

NDK开发的主要是C++开发.

JDK 开发主要 java 开发.

中间件开发主要:PhoneGapMonoTouchRexsee EMS、数字天堂、烽火等等

b、

为何要用到NDK?

1. 代码的保护,由于apkjava层代码很容易被反编译,而C/C++库反汇难度较大。

2. NDK中调用第三方C/C++库,因为大部分的开源库都是用C/C++代码编写的。

3. 便于移植,用C/C++写得库可以方便在其他的嵌入式平台上再次使用。

c、

使用NDK的一些前提

我直接翻译一段Android Developer上的原话吧:

在下载NDK之前,你需要明白,绝大多数应用无法受益于NDK。作为一名开发者,你需要权衡其利弊。值得注意的是,在Android上是用本地代码一般不会有显著的性能提升,但它总会增加应用的复杂度。通常,只有在应用程序必需的时候,你才需要使用NDK——永远不要因为你仅仅喜欢用C/C 编程而使用它。
有代表性的适合NDK的情况是自成体系的CPU密集操作,不需要分配太多内存,例如信号处理、物理运算等等。当你检查是否需要用本地代码做开发时,考虑下你的需求,并想想Android框架API是否提供了你所需要的功能。

 

 

由于Android应用被反编译后是可以看到里面信息的,而一些敏感信息,比如服务器的ip地址、加密的算法,我们是不希望让别人知道的。如何才能隐藏这些信息呢,就我目前了解,使用Android NDK,把这些数据编译在so文件中,然后通过JNI获取,从而达到保护敏感信息的目的。


以上基本明白了Android NDK开发的目的了。


下面是资源链接:


相对来说,这个教程是比较全面的了,不过只靠这个教程,依然不够,原作者的博客链接忘记了,So sorry~

http://pan.baidu.com/share/link?shareid=465052&uk=3674861929


以下是配合第一个教程:

http://blog.csdn.net/dabiaoyanjun/article/details/8214120


http://blog.csdn.net/zfzf294990051/article/details/6644666


http://blog.sina.com.cn/s/blog_6ce6c13301015m2h.html


http://my.eoe.cn/isnull/archive/754.html

你可能感兴趣的:(Android NDK)