Menu

Tree [cf923b] master /
 History

HTTPS access


File Date Author Commit
 buildSrc 2014-03-17 Nathan Jones Nathan Jones [1a148f] Add xxhdpi icon resolution.
 org.juzidian.android 2014-03-23 Nathan Jones Nathan Jones [cf923b] Add build configuration for signing release apk.
 org.juzidian.build.datagen 2013-11-17 Nathan Jones Nathan Jones [f61d0c] Fix datagen build.
 org.juzidian.cedict 2013-10-06 Nathan Jones Nathan Jones [c94998] Merge branch 'jdk-7'
 org.juzidian.cli 2013-11-17 Nathan Jones Nathan Jones [3175d8] Remove unnecessary DictionaryDataStore interface.
 org.juzidian.core 2013-11-17 Nathan Jones Nathan Jones [3175d8] Remove unnecessary DictionaryDataStore interface.
 org.juzidian.dataload 2013-11-17 Nathan Jones Nathan Jones [3175d8] Remove unnecessary DictionaryDataStore interface.
 org.juzidian.pinyin 2013-10-06 Nathan Jones Nathan Jones [c94998] Merge branch 'jdk-7'
 org.juzidian.util 2013-10-06 Nathan Jones Nathan Jones [c94998] Merge branch 'jdk-7'
 website 2014-03-17 Nathan Jones Nathan Jones [20647c] Add project name to website git clone command.
 .gitignore 2013-10-13 Nathan Jones Nathan Jones [267b9d] Use submodules for ormlite dependencies.
 .gitmodules 2013-10-13 Nathan Jones Nathan Jones [267b9d] Use submodules for ormlite dependencies.
 CHANGES 2013-10-22 Nathan Jones Nathan Jones [306392] Add document heading to changelog.
 COPYING 2012-08-19 Nathan Jones Nathan Jones [7c3373] GPL
 README 2014-03-23 Nathan Jones Nathan Jones [cf923b] Add build configuration for signing release apk.
 build.gradle 2013-11-12 Nathan Jones Nathan Jones [8475c4] Convert licenses html creation to freemarker te...
 datagen-settings.gradle 2013-10-16 Nathan Jones Nathan Jones [bb8dfc] Rename "settings-data.gradle" to "datagen-setti...
 default.profile 2013-10-23 Nathan Jones Nathan Jones [2d67ee] Add "publish" task for deploying website via rs...
 dev.profile 2013-10-26 Nathan Jones Nathan Jones [81ae5e] Change local website deployment path.
 gradle.properties 2013-10-16 Nathan Jones Nathan Jones [69cd4a] Fix typo in version name.
 settings.gradle 2013-10-16 Nathan Jones Nathan Jones [c7de99] Extract "dataload" package to separate project.
 website-settings.gradle 2013-10-21 Nathan Jones Nathan Jones [819a2b] Add icon generation to website build.

Read Me

About
=====

Juzidian is a Chinese-English dictionary for Android, targeted at English-
speaking learners of Mandarin Chinese.

Juzidian is free software, licensed under the GPLv3.

See <http://www.juzidian.org/> for more details.


Build Dependencies
==================

 * Java 1.7 JDK
 * Gradle 1.6
 * Android SDK (Platform API 16, Platform-tools 16.0.2, Build Tools 17)
 * Git (rev-parse)
 * WenQuanYi Zen Hei font
 * Maven 3.1


Building
========

 * Initialise submodules for Ormlite fork:

	$ git submodule init;\
	git submodule update
	
 * Install Ormlite fork to local mvn repository:

	$ mvn -f ormlite-core/pom.xml clean install;\
	mvn -f ormlite-jdbc/pom.xml clean install;\
	mvn -f ormlite-android/pom.xml clean install

 * Create a file called 'local.properties' and set the 'sdk.dir' property to the
   location of your Android SDK installation directory, eg:

	$ echo "sdk.dir=$HOME/android-sdk-linux" > local.properties

 * Build Juzidian APK:

	$ gradle assembleDebug


Releasing
=========

To build a signed release APK, define the "ANDROID_KEYSTORE" environment
variable to point to a Java keystore file and run:

	$ gradle assembleRelease

You will be prompted for keystore and key pass phrases.


Installing
==========

Install the built APK on to a connected Android device:

	$ gradle installDebug

or

	$ gradle installRelease


Installing Data
===============

Dictionary data will be downloaded automatically when Juzidian starts up. To
skip this download step the data can be manually built and pushed to the device.
See org.juzidian.build.datagen/README for details about dictionary data
generation and publishing. Once dictionary data has been generated, copy it to a
connected Android device with:

	$ adb push org.juzidian.build.datagen/build/juzidian_dictionary.db \
	/data/data/org.juzidian.android/juzidian-dictionary.db

Note: Data installation requires adb root access on the device.


Build Profiles
==============

Build profiles allow easy switching between different build configurations. Each
build profile is defined in a Gradle script with a .profile extension. To build
using a specific build profile, set the "profile" property via a Gradle "-P"
argument. If no profile is specified then the "default" profile is used.

For example, to build the Juzidian APK using the "dev" profile, use:

	$ gradle -Pprofile=dev build


IDE Setup
=========

To setup Eclipse projects with correct natures and class paths, run

	$ gradle eclipse;\
	gradle -p buildSrc eclipse;\
	gradle -c datagen-settings.gradle eclipse

and then import all projects into Eclipse from the project root directory.