Want to compile native Android binary I can run in terminal on the phone

前端 未结 4 1509
粉色の甜心
粉色の甜心 2020-11-29 17:55

I\'ve been trying for a couple days to compile a native ARM Android binary that will execute on my phone using a terminal application. I want to generate the same type of bi

相关标签:
4条回答
  • 2020-11-29 18:09

    Try if if the agcc wrapper can help you as referenced in the Android-tricks blog. According to the blog post you want to use the bionic library, but the one already installed on the phone, not some separately compiled version.

    0 讨论(0)
  • 2020-11-29 18:19

    Just use the android-ndk. And build a Android.mk like so. include $(BUILD_EXECUTABLE) is what tells it build a executable instead of a JNI .lib

    Android.mk

    ifneq ($(TARGET_SIMULATOR),true)
    
    LOCAL_PATH:= $(call my-dir)
    
    include $(CLEAR_VARS)
    
    LOCAL_CFLAGS += -Wall
    
    
    LOCAL_LDLIBS := -L$(LOCAL_PATH)/lib -llog -g
    
    LOCAL_C_INCLUDES := bionic
    LOCAL_C_INCLUDES += $(LOCAL_PATH)/include
    
    LOCAL_SRC_FILES:= main.cpp
    
    LOCAL_MODULE := mycmd
    
    include $(BUILD_EXECUTABLE)
    
    endif  # TARGET_SIMULATOR != true
    
    0 讨论(0)
  • 2020-11-29 18:20

    Using CMake with the Android NDK is a nice way to compile Android console applications.

    Download CMake and android-cmake (set it up like this). If your program is called main.c, then write the following in file CMakeLists.txt:

    project(test)
    cmake_minimum_required(VERSION 2.8)
    add_executable(test ./main.c)
    

    and run cmake -DCMAKE_TOOLCHAIN_FILE=$ANDTOOLCHAIN .

    You will then have a Makefile for your program, you can run make to have your test executable.

    0 讨论(0)
  • 2020-11-29 18:33

    First, make sure you have the NDK:

    http://developer.android.com/tools/sdk/ndk/index.html

    Here is the easiest way to compile a C binary for your phone:

    http://developer.android.com/tools/sdk/ndk/index.html

    http://www.kandroid.org/ndk/docs/STANDALONE-TOOLCHAIN.html

    Usually $NDK(may be different) =

    Linux:

    /home/<user>/android-ndk

    Mac OS X:

    /Users/<user>/android-ndk

    In Terminal:

    # create tool-chain - one line
    # New method in ndk 12.
    $NDK/build/tools/make_standalone_toolchain.py --arch arm --install-dir=/tmp/my-android-toolchain
    # Old method.
    #$NDK/build/tools/make-standalone-toolchain.sh --platform=android-3 --install-dir=/tmp/my-android-toolchain
    
    # add to terminal PATH variable
    export PATH=/tmp/my-android-toolchain/bin:$PATH
    
    # make alias CC be the new gcc binary
    export CC=arm-linux-androideabi-gcc
    
    # compile your C code(I tried hello world)
    $CC -o foo.o -c foo.c
    
    # push binary to phone
    adb push foo.o /data/local/tmp
    
    # execute binary
    adb /data/local/tmp/foo.o
    
    0 讨论(0)
提交回复
热议问题