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).
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
- java.awt4a-0.1-release.aar
- flatDir - setup where library files saved.
allprojects {
repositories {
jcenter()
flatDir {
dirs 'libs'
}
}
}
-
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')
...
}
-
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" />
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;
}
}
}
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();
After executing to screen on non UI thread, use runOnUiThread to callback to UI thread.
runOnUiThread(new Runnable() {
public void run() {
// update UI
}
});