如何构建在Android上运行的本机(命令行)可执行文件?

某处某人:

我已经成功构建了使用本机(JNI)库的Android应用(GUI)。

但是,现在我想创建一个从命令行运行的可执行文件(root特权),并且根本不使用GUI。我该如何构建类似的东西?

kennytm:

从NDK r8d开始,这可以通过更简单的方式解决。

  1. 创建具有以下目录层次结构的项目:

    project/
        jni/
            Android.mk
            Application.mk
            *.c, *.cpp, *.h, etc.
    
  2. 使用以下内容填写Android.mk。最重要的是最后一行。检查NDK文档中其他变量的含义。

    LOCAL_PATH := $(call my-dir)
    
    include $(CLEAR_VARS)
    
    LOCAL_MODULE := name-of-your-executable
    LOCAL_SRC_FILES := a.cpp b.cpp c.cpp etc.cpp
    LOCAL_CPPFLAGS := -std=gnu++0x -Wall -fPIE         # whatever g++ flags you like
    LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib -llog -fPIE -pie   # whatever ld flags you like
    
    include $(BUILD_EXECUTABLE)    # <-- Use this to build an executable.
    
  3. 转到project/目录,只需键入

    ndk-build
    

    结果将放置在中project/libs/<arch>/name-of-your-executable

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何更改命令行可执行文件?

在NixOS中,如何从命令行运行Haskell可执行文件?

如何从Linux命令行运行.exe可执行文件?

Windows可执行文件的命令行选项

在visual studio post build命令行中从链接文件运行可执行文件

通过可执行文件(.exe)运行程序时出现错误时如何保持命令行打开

从命令行运行可执行文件时保留以前的信息

如何在执行之前通过命令行设置可执行文件的工作目录?

Windows上的Julia。如何将命令行选项传递给可执行文件

在 Windows 上构建的 Quarkus 本机可执行文件不在 Docker 容器内运行

如何使用命令行在 Scheme 中加载可执行文件

如何在Clojure中创建命令行可执行文件

如何从命令行比较两个可执行文件的版本?

如何通过命令行将其粘贴到终端可执行文件中?

作为可执行文件运行Python文件与从命令行运行Python文件之间的区别?

如何使用“ execl()”在C / C ++中运行系统命令,仅将函数参数作为命令行传递,而不作为可执行文件传递?

如何为Android Shell构建可执行文件

在不进入命令行的文件位置的情况下访问可执行文件

如何从命令行设置Windows可执行文件的组和相似性

如何将 Node.js 命令行应用程序转换为单个可执行文件?

命令行长度限制:内置vs可执行文件

Windows:命令行以读取可执行文件的版本信息?

将命令行参数传递给javaws(Java WebStart)可执行文件

在调用可执行文件时查找命令行使用的路径

WPF和命令行应用程序在同一可执行文件中

Powershell-与可执行文件的命令行提示符进行交互?

将节点命令行选项传递给npm可执行文件?

通过python与Windows可执行文件命令行GUI进行通信

是否可以在命令行中将输入参数传递给可执行文件