• Android(java)学习笔记200:JNI之NDK的概念


    1.交叉编译

    (1)概念

    在一个平台(硬件)和os(软件)环境下,编译出另一种平台和os下可以运行的二进制代码。

    e.g:

        电脑端                                                            手机端

    win7---intel     >>>     编译   >>>>      arm/mips/x86---Android(Linux2.6.6)运行的二进制代码

    电脑端编写编译出可以在手机端运行的二进制代码。

    (2)交叉编译工具

    NDK : native developer kit   (本地开发工具包)

    备注:

           cdt(Eclipse插件):c开发工具(只是把c语法显示高亮)

    2. NDK工具

    (1)解压一个NDK(android-ndk-r9-windows-x86_64.zip)工具包压缩文件,得到如下结果:

    build :  编译的文件

    docs : 开发帮助文档

    platform : 平台(Android平台  ARM/MIPS/Intel Atom)

    prebuilt : 预编译的文件

    samples : 开发实例(参考)

    sources :工具的源文件

    test :测试平台

    toolchains :工具链(很多工具,链接调用组成工具链)

    ndk-build.cmd : (ndk开发工具)最重要

    (2)NDK作用

    NDK发布之前,Android不支持进行C开发。NDK提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用一起打包成apk。这些工具对开发者的帮助是巨大的。

    NDK集成了交叉编译器,并提供了相应的mk文件隔离CPU、平台、ABI等差异,开发人员只需要简单修改mk文件(指出"哪些文件需要编译"、"编译特性要求"等),就可以创建出so。NDK可以自动地将so和Java应用一起打包,极大地减轻了开发人员的打包工作。

    另外:

        使用NDK,我们可以将要求高性能的应用逻辑使用C开发,从而提高应用程序的执行效率。

        使用NDK,我们可以将需要保密的应用逻辑使用C开发。毕竟,Java包都是可以反编译的。

  • 相关阅读:
    Windows PE变形练手3-把通用模板机器码直接覆盖目标PE
    Windows PE变形练手2-开发一套自己的PE嵌入模板
    R3抹掉加载的DLL
    R3获取kernel32地址
    Windows PE变形练手1-用PE自己的机器码修改自己的逻辑
    Windows PE 第十三章 PE补丁技术
    Windows PE 第十二章 PE变形技术
    16.PHP_Ajax模拟服务器登录验证
    15.PHP_PHP与Ajax
    14.PHP_PHP与XML技术
  • 原文地址:https://www.cnblogs.com/hebao0514/p/4811229.html
Copyright © 2020-2023  润新知