❶ “android NDK ”是什么,在什么情况下使用
1、NDK是一系列工具的集合。
2、NDK提供了一份稳定、功能有限的API头文件声明。
3、NDK的发布,使“java+C”的开发方式终于转正,成为官方支持的开发方式。
4、NDK将使Android平台支持C开发的开端。
NDK使得在android中,java可以调用C函数库。我们都知道,java是半解释型语言,很容易被反汇编后拿到源代码文件,在开发一些重要协议时,我们为了安全起见,使用C语言来编写这些重要的部分,来增大系统的安全性。还有,在一些接近硬件环境下,相信大家都清楚行袭升C与java的优劣。顺带提一下:NDK并不能显着提升应用效率。why?我们都觉得C语言比起java来说效率要高出很多,一方面,随着jdk的不断更新,java的效率也随之提高;另一方面,即便使用C语言编码提高了应用效率,但是在java与C相互调用时平白又增大了开销。
❷ android 怎么防止dex反编译
防止Android apk被反编译的方法:
1、判断apk签名是否与原版签名是否一致。
2、代码混淆,将混淆的级别设置高点,混淆出来以后代码全部变乱。
3、使用NDK编程,将核心算法用c/c++来编写,打包成so库供java层调用。
❸ Android开发的IDE、ADT、SDK、JDK、NDK等名词解释
这篇文章主要介绍了Android开发的IDE、ADT、SDK、JDK、NDK等名词解释,对这些概念搞不清楚是一件痛苦的事,本文就简洁讲解了这些名词的含义,一起扫盲吧,需要的朋友可以参考下
1.
IDE:
Intelligent
Development
Environm的简称。即智能开发环境。是一种开发工具。常用的IDE有adt-bundles和Android
studio。两个都需要配置jdk。
2.
ADT:
Android
Development
tools的简称。即Android开发工具。ADT为Eclipse的插件。在Eclipse和SDK之间起了一个桥梁的作用。
3.
SDK:
Soft
Development
Kit的简称。软件开发工具包。在Android中,它为开发者提供了库文件以及其它开发所用到的工具。
4.
JDK:
Java的开发工具包。包括了Java运行环境、Java工具和Java基础类库。
5.
NDK:
概念:
(1).NDK是一系列工具的集合。帮助开发者快速开发C/C++的动态库。
并能自动将so和Java应用一起打包成apk。这些工具对开发者的帮助是巨大的。
(2).NDK将是Android平台开发支持C开发的开端。
作用:
(1).代码的保护。由于Java层代码很容易被反编译,而C/C++库反编译难度很大。
(2).可以方便的使用现存的开源库。大部分现存的开源库都是用C/C++代码编写的。
(3).提高程序的执行效率。将要求高性能的应用逻辑使用C开发,从而提高应用程序的执行效率。
(4).便于移植。用C/C++写的库可以方便的在其他的嵌入式平台上再次使用。
❹ Android NDK 用C语言好还是C++好
C++好,对于NDK来说,C++比C语言在与JAVA的回调机制上更加很好的配合,目前来说,大部分比较高级的程序都是利用C++来写的,既能具备JAVA的方便又能具备C语言的执行效率高,用C++好一些
Android NDK 是在SDK前面又加上了“原生”二字,即Native Development Kit,因此又被Google称为“NDK”。
众所周知,Android程序运行在Dalvik虚拟机中,NDK允许用户使用类似C / C++之类的原生代码语言执行部分程序。
NDK包括了:
从C / C++生成原生代码库所需要的工具和build files。
将一致的原生库嵌入可以在Android设备上部署的应用程序包文件(application packages files ,即.apk文件)中。
支持所有未来Android平台的一些列原生系统头文件和库
为何要用到NDK?
概括来说主要分为以下几种情况:
1. 代码的保护,由于apk的java层代码很容易被反编译,而C/C++库反汇难度较大。
2. 在NDK中调用第三方C/C++库,因为大部分的开源库都是用C/C++代码编写的。
3. 便于移植,用C/C++写的库可以方便在其他的嵌入式平台上再次使用。
❺ app可以被反编译到什么程度
android app 如果纯java没有混淆,可以反编译出完整源代码;
如果用了ndk,native这部分可以反编译出伪代码,分析出算法是不成问题的。
防止Android apk被反编译的方法:
判断apk签名是否与原版签名是否一致
代码混淆,将混淆的级别设置高点,混淆出来以后代码全部变乱
使用NDK编程,将核心算法用c/c++来编写,打包成so库供java层调用