externalNativeBuild {
            cmake {
                cppFlags "-std=c++14"
            }
}
externalNativeBuild {
        cmake {
            path "CMakeLists.txt"
        }
    }
export ANDROID_NDK_HOME=/path/to/ndk/folder
export PATH=$PATH:$ANDROID_NDK_HOME
sudo apt-get install gcc
android {
    // ...
    defaultConfig {
        // ...
        externalNativeBuild {
            ndkBuild {
                // 设置NDK路径
                ndkPath "路径/to/ndk"
            }
        }
    }
    // ...
}
source ./build/envsetup.sh
lunch aosp_arm-eng
sudo yum install android-ndk
export ANDROID_NDK_HOME=/path/to/ndk
export PATH=$PATH:$ANDROID_NDK_HOME
#include <jni.h>
#include <string>

extern "C"
JNIEXPORT jstring JNICALL
Java_com_example_hellondk_HelloNDKActivity_stringFromJNI(JNIEnv *env, jobject /* this */) {
    std::string hello = "Hello from C++";
    return env->NewStringUTF(hello.c_str());
}
export NDK_HOME=/home/xxx/android_env/android-ndk-r8/export PATH=$NDK_HOME:$PATH
     到这里 NDK 的环境就已经配置好了,在任意目录下就给使用 NDK 提供的工具, NDK 提供的主要的工具是 ndk-build,在任意目录下执行:ndk-build
options {
        listen-on port 53 { localhost; };      #括号内改为localhost是将本机ip监听在53端口上,也可以写上本机IP,注意最后的;号
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        allow-query     { any; };     #改为any是指允许任何人通过你的服务器来解析DNS,也可以指定IP。
export NDK_HOME=/path/to/ndk
export PATH=$PATH:$NDK_HOME
#!/bin/sh
if [ $# -ne 3 ];then
echo "请输入正确的参数 1:项目名称 2:首页地址 3:App名称 "
exit 1
fi
project_name=$1
first_page_url=$2
appName=$3
 
tempDir=$(date "+%Y%m%d%H%M%S")
cp AppFramework/ ${tempDir} -R
echo "拷贝源代码结束."
 
sed -i "s/<string name=\"app_name\">.*<\/string>/<string name=\"app_name\">${appName}<\/string>/" ./${tempDir}/app/src/main/res/values/strings.xml
 
sed -i "s~<first_page_url url=.*\/>~<first_page_url url=\"${first_page_url}\"\/>~" ./${tempDir}/app/src/main/assets/app_config.xml
echo "替换app名称和首页地址结束"
 
cd ${tempDir}
../gradle-4.4/bin/gradle clean
../gradle-4.4/bin/gradle assembleDebug
echo "编译结束"
 
cd ..
rm -rf ${project_name}
mkdir ${project_name}
cp ${tempDir}/app/build/outputs/apk/debug/app-debug.apk ${project_name}/${project_name}.apk
echo "拷贝apk结束"
cd ${project_name}
output=`pwd`
cd ..
rm -rf ${tempDir}
echo "删除临时文件目录结束"
echo "生成apk目录位于${output},快去看看吧"
public class MainActivity extends Activity implements OnClickListener {

private String tag = getClass().getSimpleName();
private TextView textView;
private static final String filePath = "/mnt/sdcard/hello.txt";
private int num = 0;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = (TextView) findViewById(R.id.textView);
findViewById(R.id.bt_add).setOnClickListener(this);
findViewById(R.id.bt_del).setOnClickListener(this);
findViewById(R.id.bt_update).setOnClickListener(this);
findViewById(R.id.bt_select).setOnClickListener(this);
}

@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.bt_add:
num++;
JniFileTools.writeFile(filePath, ", "+num);
textView.setText(JniFileTools.readFile(filePath));
break;
case R.id.bt_del:
JniFileTools.deleteString(filePath, ", "+num);
textView.setText(JniFileTools.readFile(filePath));
if(num > 0){
num--;
}
break;
case R.id.bt_update:
break;
case R.id.bt_select:
textView.setText(JniFileTools.readFile(filePath));
break;
default:
break;
}
}
}
深圳电信家用网络

https://mike.atzlinux.com:58888/atzlinux-cd/11.6.1/amd64/iso-dvd/atzlinux-11.6.1-amd64-DVD-1.iso
深圳电信家用网络

https://motion.atzlinux.com:18761/atzlinux-cd/11.6.1/amd64/iso-dvd/atzlinux-11.6.1-amd64-DVD-1.iso
湖南长沙电信家用网络

https://hncsdxwq.atzlinux.com:1880/atzlinux-cd/11.6.1/amd64/iso-dvd/atzlinux-11.6.1-amd64-DVD-1.iso
山东电信家用网络

http://www.yxgang.top:1080/atzlinux-cd/11.6.1/amd64/iso-dvd/atzlinux-11.6.1-amd64-DVD-1.iso
新加坡华为云(10Mbps带宽)

https://xjphwy.atzlinux.com/atzlinux-cd/11.6.1/amd64/iso-dvd/atzlinux-11.6.1-amd64-DVD-1.iso
北京联通机房(10Mbps带宽)

http://atzlinux.pythonskill.com:8099/atzlinux-cd/11.6.1/amd64/iso-dvd/atzlinux-11.6.1-amd64-DVD-1.iso
unzip android-ndk-r16b-linux-x86_64.zip
unzip android-ndk-r16b-linux-x86_64.zip
vim ~/.bashrc
添加:
export NDKROOT=/usr/android-ndk-r15c
export PATH=$NDKROOT:$PATH
保存退出,更新环境变量:
source ~/.bashrc

  • 1
  • 2
  • 3
  • 4
  • 5