Changes

Jump to navigation Jump to search
919 bytes added ,  11:55, 10 April 2014
no edit summary
The first step is to create an Android library project, which will be later modified to represent the BaseX Android library.<br>
In Android Studio the 'Create New Project' menu item needs to be chosen. In order to this the displayed window appears.
<br>
[[File:android-studio-new-project-dialog.png]]
<br>
It is important that the minimum Android version is Gingerbread 2.3.3, because of some String methods used in BaseX which are not supported by Android versions older than Gingerbread.
To create an Android library project, the 'Mark this project as library' item need to be checked. An Android library is not executable and therefore does not need the creation of an Activity, which is the reason why this item is unchecked in the picture above.<br>
After successfully copying the corresponding BaseX packages and java files into the created Android library project a few adjustments have to be done in order to get a working Android library.
At this moment the BaseX source code is presented in the Android library project as well as an empty android package, as it is shown in the following image.
<br>
[[File:library-project-after-copying.png]]
<br>In the empty android package a new Java class needs to be created, this class is used to create the necessary BaseX files and communicate with BaseX.This class needs the data directory of the application for storing the corresponding BaseX files. This files should be stored in the apps /data/data/.. folder which is only accessible from the application.This information is only available inside the applications context and not inside a library project, therefore it is neccessary to pass this information to this class at the constructor call.The following source code shows a minimal example for a BaseX class.'''Example:''' <pre class="brush:java">public class BaseXDatabase { private Context basexContext = null;  public BaseXDatabase(String data_dir) { basexContext = new Context(data_dir); } }<br/pre>This class can be called in every Android application which uses the BaseX library with the following call, for example:<pre class="brush:java">BaseXDatabase baseXDatabase = new BaseXDatabase(getApplicationInfo().dataDir);</pre>
administrator, editor
10

edits

Navigation menu