commit | 14fd3e22d69c97cadbc48f35d0da59c5296cc9f4 | [log] [tgz] |
---|---|---|
author | Alexander Afanasyev <aa@cs.fiu.edu> | Wed Jul 04 14:20:53 2018 -0400 |
committer | Alexander Afanasyev <aa@cs.fiu.edu> | Fri Jul 27 11:35:00 2018 -0400 |
tree | 2723e0baaeb9cce75586e5fdd0f095670b2fe58f | |
parent | 4a20a88fb288403c6776f81c1d117cfc7fced122 [diff] |
jni: Upgrade underlying NFD to version 0.6.2-11-gd657d53 This change replaces in-project JNI compilation of ndn-cxx and NFD with packaged versions of ndn-cxx and NFD using a customized android-crew-staging (https://github.com/named-data-mobile/android-crew-staging). Refer to README-dev.md for more detail. This commit also drops Logcat views Refs: #4661 Change-Id: Id981689475d9da3aea63bea38d925f335c25b46e
To compile code, the following is necessary
Example script for Ubuntu 16.04 to get all dependencies, download SDK and NDK:
sudo apt -q update sudo apt -qy upgrade sudo apt-get install -y build-essential git openjdk-8-jdk unzip ruby ruby-rugged sudo apt-get install -y lib32stdc++6 lib32z1 lib32z1-dev mkdir android-sdk-linux cd android-sdk-linux wget https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip unzip sdk-tools-linux-3859397.zip rm sdk-tools-linux-3859397.zip export ANDROID_HOME=`pwd` export PATH=${PATH}:${ANDROID_HOME}/tools/bin:${ANDROID_HOME}/platform-tools echo "y" | sdkmanager "platform-tools" sdkmanager "platforms;android-28" "ndk-bundle" cd ndk-bundle git clone https://github.com/named-data-mobile/android-crew-staging crew.dir CREW_OWNER=named-data-mobile crew.dir/crew install target/sqlite target/openssl target/boost CREW_OWNER=named-data-mobile crew.dir/crew install target/ndn_cxx target/nfd cd ..
The above crew
scripts will install pre-compiled versions of sqlite, openssl, and boost libraries. For more details about the crew tool, refer to README-dev.md.
git clone --recursive http://gerrit.named-data.net/NFD-android echo sdk.dir=`pwd`/android-sdk-linux > NFD-android/local.properties echo ndk.dir=`pwd`/android-sdk-linux/ndk-bundle >> NFD-android/local.properties cd NFD-android # Build in release mode (you will need to have proper signing keys configured, see README-dev.md) ./gradlew assembleRelease # Build in debug mode ./gradlew assembleDebug
You can also automatically install debug/release NDN-android to the connected phone
# build and install release version (will require signing key configuration) ./gradlew installRelease # build and install debug version ./gradlew installDebug
Note that you can limit architectures being built using NDK_BUILD_ABI
variable. For example,
export NDK_BUILD_ABI=armeabi-v7a,x86_64
will limit build to armeabi-v7a
and x86_64
.
By default, the build script will try to parallelize build to the number of CPUs. This can be overridden using NDK_BUILD_PARALLEL
variable.
To upload .apk
files to Google Play (need configuration of keys and Google Play credentials, see README-dev.md):
./gradlew publishRelease
The development setup can be set up with Vagrant and scripts provided in .vagrant/
folder. After vagrant command-line is installed, the following will create VM environment and fetch all necessary dependencies:
cd .vagrant vagrant up vagrant ssh
Refer to vagrant documentation for more information.