BCM uses Gradle 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.
The following steps should help you (re)build BCM from the command line.
-
Checkout the BCM-Android project source with the command:
git clone https://github.com/bcmapp/bcm-android.git
-
Make sure you have the Android SDK installed.
-
Ensure that the following packages are installed from the Android SDK manager:
- Android SDK Build Tools (see buildToolsVersion in build.gradle)
- SDK Platform (All API levels)
- Android Support Repository
- Google Repository
-
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
-
Using Java 8
-
Execute Gradle:
./gradlew build
Android Studio is the recommended development environment.
- Install Android Studio.
- 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.
- From the Quickstart panel, choose "Configure" then "SDK Manager".
- 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.
- From the Quickstart panel, choose "Checkout from Version Control" then "git".
- Paste the URL for the im-android project when prompted (https://github.com/bcmapp/bcm-android.git).
- Android studio should detect the presence of a project file and ask you whether to open it. Click "yes".
- Default config options should be good enough.
- Project initialisation and build should proceed.
├── app Application entry module, responsible for the initialization of the basic services and capabilities of the app
├── utility Application's basic tool library
├── common Application's common function logic, implementation of common components
├── chats Application chat and group chat interaction and function logic implementation
├── contacts Address book interaction, function logic implementation, and user data management for applications
├── login Application login logic implementation
├── me Interactive implementation of registe and login
├── netswitchy Agent support implementation(eg:ss,ssr,obsf4,socks5)
├── adhoc-client Networkless communication interaction and logic implementation
├── umeng offline push module
├── appsflyer
├── wallet Wallet interaction and function implementation
├── thirdpart
│ ├── bitcoin bitcoin sdk
│ ├── ethereum eth sdk
│ ├── fcm_analytics_plugin disable fcm analytics
│ ├── router Module function routing implementation
│ ├── signal-protocol signal protocol sdk for private chat