Upgrade gradle

Change-Id: I1a899e2e757c1266a60afdb4e43d9b2ab9805639
4 files changed
tree: 03d1ad807a2e6affaffee13af293442531460614
  1. .jenkins.d/
  2. .vagrant/
  3. app/
  4. gradle/
  5. .gitignore
  6. .gitmodules
  7. .travis.yml
  8. AUTHORS.md
  9. build.gradle
  10. COPYING.md
  11. gradlew
  12. gradlew.bat
  13. README-dev.md
  14. README.md
  15. RELEASE_NOTES.rst
  16. settings.gradle
README.md

NFD on Android

Build Status

Prerequisites

To compile code, the following is necessary

  • Recent version of Android SDK, android-23 SDK and 23.0.2 build tools (for build), android-19 SDK (for compatibility), and several other SDK components
  • CrystalX Android NDK version 10.3.1
  • Prebuilt version of OpenSSL library

Example script for Ubuntu 16.04 to get all dependencies, download SDK and NDK:

CRYSTAX_NDK_VERSION=10.3.1
SDK_VERSION=24.4.1
OPENSSL_VERSION=1.0.2h

BUILD_TOOLS_VERSION=23.0.2
COMPILE_SDK_VERSION=23

sudo apt -q update
sudo apt -qy upgrade
sudo apt-get install -y build-essential git openjdk-8-jdk unzip
sudo apt-get install -y lib32stdc++6 lib32z1 lib32z1-dev

wget https://www.crystax.net/download/crystax-ndk-$CRYSTAX_NDK_VERSION-linux-x86_64.tar.xz
tar xf crystax-ndk-$CRYSTAX_NDK_VERSION-linux-x86_64.tar.xz
rm crystax-ndk-$CRYSTAX_NDK_VERSION-linux-x86_64.tar.xz

wget http://dl.google.com/android/android-sdk_r$SDK_VERSION-linux.tgz
tar zxf android-sdk_r$SDK_VERSION-linux.tgz
rm android-sdk_r$SDK_VERSION-linux.tgz

export ANDROID_HOME=`pwd`/android-sdk-linux
export PATH=${PATH}:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tools

echo "y" | android update sdk --filter platform-tools,build-tools-$BUILD_TOOLS_VERSION,android-$COMPILE_SDK_VERSION,extra-android-m2repository,extra-google-m2repository --no-ui --all --force
echo "y" | android update sdk --filter "android-19" --no-ui --all --force

To create prebuilt OpenSSL libraries:

git clone https://github.com/crystax/android-vendor-openssl.git
cd crystax-ndk-$CRYSTAX_NDK_VERSION
./build/tools/build-target-openssl.sh ../android-vendor-openssl/
cp sources/openssl/1.0.1p/Android.mk -o sources/openssl/$OPENSSL_VERSION/Android.mk

Alternatively, you can use precompiled versions (currently, available for CrystaX NDK 10.3.1 only):

cd crystax-ndk-10.3.1/sources
curl -L -o openssl.tar.gz https://github.com/named-data-mobile/crystax-prebuilt-openssl/archive/crystax-10.3.1.tar.gz
tar zx --strip-components 1 -C openssl -f openssl.tar.gz
rm openssl.tar.gz

Building

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`/crystax-ndk-10.3.1 >> NFD-android/local.properties
cd NFD-android

./gradlew assembleRelease

Setting up environment using Vagrant

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.