美文网首页
Android逆向(002) NDK-BUILD 编译Hello

Android逆向(002) NDK-BUILD 编译Hello

作者: 笑容_235a | 来源:发表于2019-02-16 09:53 被阅读0次

    NDK

    NDK(native development kit) 原生开发套件。一款将c,c++与Android应用结合到一起的开发工具,Android应用使用jni调用原生c++开发的模块,使性能得到大大的提升。

    Ndk-build 编译

    NDK开发套件提供了一系列开发工具,其中的ndk-build用来快速生成原生应用程序。
    ndk-builer使用application.mk,和android.mk作为脚本文件。
    application.mk是可选的,用来说明生成的文件的二进制格式等特性。
    android.mk是ndk-builer的编译脚本,描述了项目的编译选项,将要编译的文件,依赖库等。

    LOCAL_PATH := $(call my-dir)
    //定义本地源码的路径
    include $(CLEAR_VARS)
    //清除掉一些已经定义的宏
    LOCAL_CFLAGS += -pie -fPIE
    LOCAL_LDFLAGS += -pie -fPIE
    //在5.0以上Android系统上使用必须指定项
    LOCAL_ARM_MODE  := arm
    //arm指令模式
    LOCAL_MODULE    := Hello
    //模块名称
    LOCAL_SRC_FILES := Hello.c
    //c或者c++源文件列表
    include $(BUILD_EXECUTABLE)
    //指定生成文件的类型,BUILD_EXECUTABLE生成可执行文件,BUILD_SHARED_动态库,BUILD_STATIC_LIBRARY静态库
    

    Hello World例子

    #include <stdio.h>
    
    int main()
    {
        printf("Hello  World!\n");
        return 0;
    }
    
    1. 把源代码保存为Hello.c,复制到到jni目录下与android.mk,application.mk文件放在一起。

    2. 运行ndk-build命令,在lib/armeabi-v7a目录下生成Hello文件,并把Hello文件复制到jni目录下。

    3. 运行模拟器,执行adb push Hello /data/local/tmp。

    4. 运行cd /data/local/tmp,再运行chomod 777 Hello 命令,增加权限。

    5. 运行./Hello , 输出Hello World.

    相关文章

      网友评论

          本文标题:Android逆向(002) NDK-BUILD 编译Hello

          本文链接:https://www.haomeiwen.com/subject/yjfbeqtx.html