zoukankan      html  css  js  c++  java
  • 最简单 NDK 样例

    以下在 Ubuntu下 编译一个 c 语言 hello world 并在 android 手机或模拟器上执行


    进入程序位置

    cd  ~/pnp5/jni


    有三个文件 main.c Android.mk, Application.mk, 内容:

    $ cat main.c 
    
    #include <stdio.h>
    
    int main (void)
    {
    
      printf("hello world");
      return 0;
    }
    
    ~/pnp5/jni$ cat Android.mk 
    
    LOCAL_PATH:= $(call my-dir)
    include $(CLEAR_VARS)
    
    LOCAL_SRC_FILES:= 
            main.c
    
    
    LOCAL_MODULE:= pnp5
    LOCAL_MODULE_TAGS := optional
    
    
    include $(BUILD_EXECUTABLE)
    
    
    ~/pnp5/jni$ cat Application.mk 
    APP_ABI := all

    注:Application.mk 能够没有(怎样你仅仅须要arm程序)



    在当前文件夹执行 ndk-build 

    ( 假设没有ndk,去下载一个) 

    ~/pnp5/jni$ ~/android-ndk-r10d/ndk-build
    [arm64-v8a] Compile        : pnp5 <= main.c
    [arm64-v8a] Executable     : pnp5
    [arm64-v8a] Install        : pnp5 => libs/arm64-v8a/pnp5
    [x86_64] Compile        : pnp5 <= main.c
    [x86_64] Executable     : pnp5
    [x86_64] Install        : pnp5 => libs/x86_64/pnp5
    [mips64] Compile        : pnp5 <= main.c
    [mips64] Executable     : pnp5
    [mips64] Install        : pnp5 => libs/mips64/pnp5
    [armeabi-v7a] Compile thumb  : pnp5 <= main.c
    [armeabi-v7a] Executable     : pnp5
    [armeabi-v7a] Install        : pnp5 => libs/armeabi-v7a/pnp5
    [armeabi] Compile thumb  : pnp5 <= main.c
    [armeabi] Executable     : pnp5
    [armeabi] Install        : pnp5 => libs/armeabi/pnp5
    [x86] Compile        : pnp5 <= main.c
    [x86] Executable     : pnp5
    [x86] Install        : pnp5 => libs/x86/pnp5
    [mips] Compile        : pnp5 <= main.c
    [mips] Executable     : pnp5
    [mips] Install        : pnp5 => libs/mips/pnp5

    发如今 与jni 同一级别的 libs 文件夹生成各种 target 的 程序。


    在模拟器(真机)上执行

    用 adb devices, 检查android是否启动

    用 adb push pnp5 data/

    用 adb shell 进入设备,而后执行 cd data; chmod 777 pnp5; ./pnp5


    hello world 就打印出来了


  • 相关阅读:
    Blue:贪心,单调队列
    建设城市(city):组合数,容斥原理
    [考试反思]0809NOIP模拟测试15:解剖
    [考试反思]0807NOIP模拟测试14:承认
    [考试反思]阶段性总结:NOIP模拟测试7~13
    [考试反思]0805NOIP模拟测试13:窒息
    [考试反思]0803NOIP模拟测试12:偿还
    [态度]关于博客
    差异:后缀数组(wzz模板理解),决策单调性
    [考试反思]0801NOIP模拟测试11
  • 原文地址:https://www.cnblogs.com/cxchanpin/p/7145593.html
Copyright © 2011-2022 走看看