Commit 22d0abc2 authored by Max Lv's avatar Max Lv

Merge pull request #80 from shadowsocks/android-sdk-plugin

Update the build system to pfn/android-sdk-plugin
parents c804fc7c ad920e73

Too many changes to show.

To preserve performance only 1000 of 1000+ files are displayed.

...@@ -28,3 +28,6 @@ src/main/libs ...@@ -28,3 +28,6 @@ src/main/libs
src/main/assets/armeabi src/main/assets/armeabi
src/main/assets/armeabi-v7a src/main/assets/armeabi-v7a
src/main/assets/x86 src/main/assets/x86
src/main/jni
obj
libs
[submodule "src/main/jni/shadowsocks"] [submodule "jni/shadowsocks"]
path = src/main/jni/shadowsocks path = jni/shadowsocks
url = https://github.com/madeye/shadowsocks-libev.git url = https://github.com/madeye/shadowsocks-libev.git
...@@ -2,10 +2,6 @@ language: scala ...@@ -2,10 +2,6 @@ language: scala
scala: scala:
- 2.10.3 - 2.10.3
before_install: before_install:
- git clone https://github.com/madeye/android-plugin.git
- pushd android-plugin
- sbt publish-local
- popd
- sudo apt-get update - sudo apt-get update
- sudo apt-get install libc6-dev-i386 - sudo apt-get install libc6-dev-i386
- sudo apt-get install lib32ncurses5-dev - sudo apt-get install lib32ncurses5-dev
...@@ -22,17 +18,16 @@ before_install: ...@@ -22,17 +18,16 @@ before_install:
- export ANDROID_NDK_HOME=`pwd`/android-ndk-r9d - export ANDROID_NDK_HOME=`pwd`/android-ndk-r9d
- export ANDROID_HOME=`pwd`/android-sdk-linux - export ANDROID_HOME=`pwd`/android-sdk-linux
- export PATH=${PATH}:${ANDROID_NDK_HOME}:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tools - export PATH=${PATH}:${ANDROID_NDK_HOME}:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tools
- echo "y" | android update sdk --filter tools,platform-tools,build-tools-19.0.3,android-16 --no-ui --no-https -a - echo "y" | android update sdk --filter tools,platform-tools,build-tools-19.0.3,android-19,extra-google-m2repository,extra-android-m2repository --no-ui --no-https -a
install: install:
- gem install --version 0.8.9 faraday - gem install --version 0.8.9 faraday
- gem install travis-artifacts - gem install travis-artifacts
script: script:
- ./build-ndk.sh - ./build-ndk.sh
- cp local.sbt.example local.sbt - cp local.properties.example local.properties
- sbt clean - sbt clean android:package-release
- sbt apk
after_success: after_success:
- sbt deploy - ./deploy target/android-bin shadowsocks-release.apk
env: env:
global: global:
- "ARTIFACTS_AWS_REGION=us-east-1" - "ARTIFACTS_AWS_REGION=us-east-1"
......
...@@ -10,13 +10,11 @@ Help to translate shadowsocks: http://crowdin.net/project/shadowsocks/invite ...@@ -10,13 +10,11 @@ Help to translate shadowsocks: http://crowdin.net/project/shadowsocks/invite
[![Build Status](https://secure.travis-ci.org/shadowsocks/shadowsocks-android.png)](http://travis-ci.org/shadowsocks/shadowsocks-android) [![Build Status](https://secure.travis-ci.org/shadowsocks/shadowsocks-android.png)](http://travis-ci.org/shadowsocks/shadowsocks-android)
[Nightly Builds](http://buildbot.sinaapp.com)
### PREREQUISITES ### PREREQUISITES
* JDK 1.6+ * JDK 1.6+
* SBT 0.12.4 * SBT 0.12.3
* Android SDK r21+ ( with SDK Platform Android 4.1.2, API 16, revision 4 ) * Android SDK r21+
* Android NDK r9+ * Android NDK r9+
### BUILD ### BUILD
...@@ -25,7 +23,7 @@ Help to translate shadowsocks: http://crowdin.net/project/shadowsocks/invite ...@@ -25,7 +23,7 @@ Help to translate shadowsocks: http://crowdin.net/project/shadowsocks/invite
* Set environment variable `ANDROID_NDK_HOME` to `/path/to/android-ndk` * Set environment variable `ANDROID_NDK_HOME` to `/path/to/android-ndk`
* Create your key following the instructions at http://developer.android.com/guide/publishing/app-signing.html#cert * Create your key following the instructions at http://developer.android.com/guide/publishing/app-signing.html#cert
* Put your key in ~/.keystore * Put your key in ~/.keystore
* Create `local.sbt` from `local.sbt.example` with your own key alias * Create `local.properties` from `local.properties.example` with your own key alias
* Invoke the building like this * Invoke the building like this
```bash ```bash
...@@ -33,17 +31,17 @@ Help to translate shadowsocks: http://crowdin.net/project/shadowsocks/invite ...@@ -33,17 +31,17 @@ Help to translate shadowsocks: http://crowdin.net/project/shadowsocks/invite
./build-ndk.sh ./build-ndk.sh
# Build the App # Build the App
sbt clean release sbt clean android:package-release
``` ```
#### BUILD ON Mac OS X (with HomeBrew) #### BUILD on Mac OS X (with HomeBrew)
* Install Android SDK and NDK by run `brew install android-ndk android-sdk` * Install Android SDK and NDK by run `brew install android-ndk android-sdk`
* Add `export ANDROID_HOME=/usr/local/opt/android-sdk` to your .bashrc , then reopen the shell to loat it. * Add `export ANDROID_HOME=/usr/local/opt/android-sdk` to your .bashrc , then reopen the shell to loat it.
* Run `android update sdk --filter tools,platform-tools,android-16 --no-ui --no-https -a` to insall SDK Platform Android 4.1.2, API 16, revision 4. * Run `echo "y" | android update sdk --filter tools,platform-tools,build-tools-19.0.3,android-19,extra-google-m2repository,extra-android-m2repository --no-ui --no-https -a`
* Create your key following the instructions at http://developer.android.com/guide/publishing/app-signing.html#cert * Create your key following the instructions at http://developer.android.com/guide/publishing/app-signing.html#cert
* Put your key in ~/.keystore * Put your key in ~/.keystore
* Create `local.sbt` from `local.sbt.example` with your own key alias . * Create `local.properties` from `local.properties.example` with your own key alias .
* Invoke the building like this * Invoke the building like this
```bash ```bash
...@@ -51,13 +49,12 @@ Help to translate shadowsocks: http://crowdin.net/project/shadowsocks/invite ...@@ -51,13 +49,12 @@ Help to translate shadowsocks: http://crowdin.net/project/shadowsocks/invite
./build-ndk.sh ./build-ndk.sh
# Build the apk # Build the apk
sbt clean sbt clean android:package-release
sbt apk
``` ```
### LICENSE ### LICENSE
Copyright (C) 2013 Max Lv <max.c.lv@gmail.com> Copyright (C) 2014 Max Lv <max.c.lv@gmail.com>
This program is free software: you can redistribute it and/or modify This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
......
#!/bin/bash #!/bin/bash
cd src/main
ndk-build clean ndk-build clean
ndk-build ndk-build
mkdir -p assets/armeabi mkdir -p assets/armeabi
mkdir -p assets/armeabi-v7a mkdir -p assets/armeabi-v7a
mkdir -p assets/x86 mkdir -p assets/x86
for app in iptables pdnsd redsocks ss-local ss-tunnel tun2socks for app in ip6tables iptables pdnsd redsocks ss-local ss-tunnel tun2socks
do do
mv libs/armeabi/$app assets/armeabi/ mv libs/armeabi/$app src/main/assets/armeabi/
mv libs/armeabi-v7a/$app assets/armeabi-v7a/ mv libs/armeabi-v7a/$app src/main/assets/armeabi-v7a/
mv libs/x86/$app assets/x86/ mv libs/x86/$app src/main/assets/x86/
done done
mv libs src/main/jni
import android.Keys._
import android.Dependencies.{apklib,aar}
android.Plugin.androidBuild
platformTarget in Android := "android-19"
name := "shadowsocks"
compileOrder in Compile := CompileOrder.JavaThenScala
resolvers += "JRAF" at "http://JRAF.org/static/maven/2"
resolvers += "madeye private releases" at "http://madeye-maven-repository.googlecode.com/git/"
libraryDependencies ++= Seq( libraryDependencies ++= Seq(
"com.google.android" % "support-v4" % "r12",
"com.google.android" % "analytics" % "3.01", "com.google.android" % "analytics" % "3.01",
"com.google.android" % "admob" % "6.4.1",
"dnsjava" % "dnsjava" % "2.1.5", "dnsjava" % "dnsjava" % "2.1.5",
"org.scalaj" %% "scalaj-http" % "0.3.10", "org.scalaj" %% "scalaj-http" % "0.3.10",
"commons-net" % "commons-net" % "3.3", "commons-net" % "commons-net" % "3.3",
...@@ -9,16 +23,27 @@ libraryDependencies ++= Seq( ...@@ -9,16 +23,27 @@ libraryDependencies ++= Seq(
) )
libraryDependencies ++= Seq( libraryDependencies ++= Seq(
"com.actionbarsherlock" % "actionbarsherlock" % "4.4.0" artifacts(Artifact("actionbarsherlock", "apklib", "apklib")), aar("com.actionbarsherlock" % "actionbarsherlock" % "4.4.0") exclude("com.google.android", "support-v4"),
"net.saik0.android.unifiedpreference" % "unifiedpreference" % "0.0.2" artifacts(Artifact("unifiedpreference", "apklib", "apklib")), "net.simonvt.menudrawer" % "menudrawer" % "3.0.6",
"org.jraf" % "android-switch-backport" % "1.0" artifacts(Artifact("android-switch-backport", "apklib", "apklib")), "org.jraf" % "android-switch-backport" % "1.3.1",
"net.simonvt.menudrawer" % "menudrawer" % "3.0.4" artifacts(Artifact("menudrawer", "apklib", "apklib")) "com.google.android.gms" % "play-services" % "4.4.52",
"com.android.support" % "support-v4" % "19.1.0"
) )
libraryDependencies ++= Seq( libraryDependencies ++= Seq(
"de.keyboardsurfer.android.widget" % "crouton" % "1.8.1", "de.keyboardsurfer.android.widget" % "crouton" % "1.8.1" exclude("com.google.android", "support-v4"),
"com.nostra13.universalimageloader" % "universal-image-loader" % "1.8.4", "com.nostra13.universalimageloader" % "universal-image-loader" % "1.8.4",
"com.j256.ormlite" % "ormlite-core" % "4.47", "com.j256.ormlite" % "ormlite-core" % "4.47",
"com.j256.ormlite" % "ormlite-android" % "4.47" "com.j256.ormlite" % "ormlite-android" % "4.47"
) )
proguardOptions in Android ++= Seq("-keep class android.support.v4.app.** { *; }",
"-keep interface android.support.v4.app.** { *; }",
"-keep class com.actionbarsherlock.** { *; }",
"-keep interface com.actionbarsherlock.** { *; }",
"-keep class org.jraf.android.backport.** { *; }",
"-keep class com.github.shadowsocks.** { *; }",
"-keep class * extends com.j256.ormlite.** { *; }",
"-keepattributes *Annotation*",
"-dontwarn org.xbill.**",
"-dontwarn com.actionbarsherlock.**")
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment