You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			73 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Markdown
		
	
			
		
		
	
	
			73 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Markdown
		
	
Building Signal
 | 
						|
===============
 | 
						|
 | 
						|
Basics
 | 
						|
------
 | 
						|
 | 
						|
Signal uses [Gradle](http://gradle.org) to build the project and to maintain
 | 
						|
dependencies.  However, you needn't install it yourself; the
 | 
						|
"gradle wrapper" `gradlew`, mentioned below, will do that for you.
 | 
						|
 | 
						|
Building Signal
 | 
						|
---------------
 | 
						|
 | 
						|
The following steps should help you (re)build Signal from the command line.
 | 
						|
 | 
						|
1. Checkout the Signal-Android project source with the command:
 | 
						|
 | 
						|
        git clone https://github.com/WhisperSystems/Signal-Android.git
 | 
						|
 | 
						|
2. Make sure you have the [Android SDK](https://developer.android.com/sdk/index.html) installed.
 | 
						|
3. Ensure that the following packages are installed from the Android SDK manager:
 | 
						|
    * Android SDK Build Tools (see buildToolsVersion in build.gradle)
 | 
						|
    * SDK Platform (API level 22)
 | 
						|
    * Android Support Repository
 | 
						|
    * Google Repository
 | 
						|
4. Create a local.properties file at the root of your source checkout and add an sdk.dir entry to it.  For example:
 | 
						|
 | 
						|
        sdk.dir=/Application/android-sdk-macosx
 | 
						|
 | 
						|
5. Execute Gradle:
 | 
						|
 | 
						|
        ./gradlew build
 | 
						|
 | 
						|
Visual assets
 | 
						|
----------------------
 | 
						|
 | 
						|
Source assets tend to be large binary blobs, which are best stored outside of git repositories. We host ours in a [Pixelapse repository](https://www.pixelapse.com/openwhispersystems/projects/signal-android/). Some source files are SVGs that can be auto-colored and sized using a tool like [android-res-utils](https://github.com/sebkur/android-res-utils).
 | 
						|
 | 
						|
Sample command for generating our audio placeholder image:
 | 
						|
 | 
						|
```bash
 | 
						|
pngs_from_svg.py ic_audio.svg /path/to/Signal/res/ 150 --color #000 --opacity 0.54 --suffix _light
 | 
						|
pngs_from_svg.py ic_audio.svg /path/to/Signal/res/ 150 --color #fff --opacity 1.00 --suffix _light
 | 
						|
```
 | 
						|
 | 
						|
Setting up a development environment
 | 
						|
------------------------------------
 | 
						|
 | 
						|
[Android Studio](https://developer.android.com/sdk/installing/studio.html) is the recommended development environment.
 | 
						|
 | 
						|
1. Install Android Studio.
 | 
						|
2. Open Android Studio. On a new installation, the Quickstart panel will appear. If you have open projects, close them using "File > Close Project" to see the Quickstart panel.
 | 
						|
3. From the Quickstart panel, choose "Configure" then "SDK Manager".
 | 
						|
4. In the SDK Tools tab of the SDK Manager, make sure that the "Android Support Repository" is installed, and that the latest "Android SDK build-tools" are installed. Click "OK" to return to the Quickstart panel.
 | 
						|
5. From the Quickstart panel, choose "Checkout from Version Control" then "git".
 | 
						|
6. Paste the URL for the Signal-Android project when prompted (https://github.com/WhisperSystems/Signal-Android.git).
 | 
						|
7. Android studio should detect the presence of a project file and ask you whether to open it. Click "yes".
 | 
						|
9. Default config options should be good enough.
 | 
						|
9. Project initialisation and build should proceed.
 | 
						|
 | 
						|
Contributing code
 | 
						|
-----------------
 | 
						|
 | 
						|
Code contributions should be sent via github as pull requests, from feature branches [as explained here](https://help.github.com/articles/using-pull-requests).
 | 
						|
 | 
						|
Mailing list
 | 
						|
------------
 | 
						|
 | 
						|
Development discussion happens on the whispersystems mailing list.
 | 
						|
[To join](https://lists.riseup.net/www/info/whispersystems)
 | 
						|
Send emails to whispersystems@lists.riseup.net
 | 
						|
 |