Skip to content

Latest commit

 

History

History
165 lines (119 loc) · 4.04 KB

README_en.md

File metadata and controls

165 lines (119 loc) · 4.04 KB

onbon bx05 api for Android

Build Status Codacy Badge

Chinese

This document describes how to create a project of onbon.bx05 api in Android Studio IDE.

Test target of github source is is BX-5E3. Test information always be showed at fixed position (448, 0) with fixed size (64,32).

Sample

dependency files

JAR - onbon bx05 api Java Libraries (7/10)

  • bx05.message-x.x.x-SNAPSHOT.jar

  • bx05-x.x.x-SNAPSHOT.jar

  • log4j-1.2.14.jar

  • simple-xml-2.7.1.jar

  • uia.comm-x.x.x.jar

  • uia.message-x.x.x.jar

  • uia.utils-x.x.x.jar

AAR - onbon bx05 api on Android devcie Libraries (Android only)

  • java.awt4a-0.1-release.aar

project configuration

build.gradle

  • flatDir - setup where library files saved.
allprojects {
    repositories {
        jcenter()
        flatDir {
            dirs 'libs'
        }
    }
}

app configuration

build.gradle

  • project.ext.set - output name.

  • dexOptions - allow to load Java AWT for Android。

  • dependencies - define dependency files of onbon.bx05 API including JAR and AAR. All files saved in libs folder.

android {
    ...
    defaultConfig {
        ...
        project.ext.set("archivesBaseName", "bx5g.mobiledemo-" + defaultConfig.versionName);
    }
    dexOptions {
        preDexLibraries = false
        additionalParameters =["--core-library"]
    }

}

dependencies {
    ...
    compile files('libs/bx05.message-0.5.0-SNAPSHOT.jar')
    compile files('libs/bx05-0.5.0-SNAPSHOT.jar')
    compile files('libs/log4j-1.2.14.jar')
    compile files('libs/simple-xml-2.7.1.jar')
    compile files('libs/uia.comm-0.2.1.jar')
    compile files('libs/uia.message-0.5.1.jar')
    compile files('libs/uia.utils-0.1.2.jar')
    compile(name:'java.awt4a-0.1-release', ext:'aar')
    ...
}

AndroidManifest.xml

  • android:name - setup startup class to initial runtime environment of BX5G API.

  • android.permission.INTERNET - allow to use socket.

<application
    android:name="onbon.bx05.mobiledemo.MainApplication"
    ...>
</application>
<uses-permission android:name="android.permission.INTERNET" />

MainApplication.java

Implementation of class which defines at android:name in AndroidManifest.xml.

package onbon.bx05.mobiledemo;

import android.app.Application;

import j2a.awt.AwtEnv;
import onbon.bx05.Bx5GEnv;

public class MainApplication extends Application {

    private boolean initial;

    @Override
    public void onCreate() {
        super.onCreate();

        try {
            // java.awt for android initial
            AwtEnv.link(this);                          // link application and AWT
            AwtEnv.configPaintAntiAliasFlag(true);      // setup anti-alias flag.

            // BX5G API initial
            Bx5GEnv.initial();

            this.initial = true;
        }
        catch (Exception ex) {
            this.initial = false;
        }
    }
}

MainApplication.java

Source Code

Develop

Screen (Controller) operation

Because socket client can't be runned on UI thread, all operations execute to screen need to run in new thread.

new Thread(new Runnable() {
    public void run() {
        // operate to screen
    }
}).start();

UI Update

After executing to screen on non UI thread, use runOnUiThread to callback to UI thread.

runOnUiThread(new Runnable() {
    public void run() {
        // update UI
    }
});