Difference between revisions of "Android Programming"

From Lazarus wiki
Jump to navigationJump to search
Line 9: Line 9:
 
See here: http://developer.android.com/guide/developing/other-ide.html
 
See here: http://developer.android.com/guide/developing/other-ide.html
  
==Using the Android API from Pascal==
+
==Android API Hello World in Pascal==
  
 
Here is an example Pascal application written for Android.
 
Here is an example Pascal application written for Android.
Line 72: Line 72:
  
 
[[Image:Simple Android app.png]]
 
[[Image:Simple Android app.png]]
 +
 +
===Compiling the example project in Linux===
 +
 +
1> Get a working arm-linux cross-compiler which generates ARMv5 eabi with softfloat (as many phones like HTC Wildfire have no FPU)
 +
 +
To do this one can download an unofficial build from here:
 +
 +
http://members.yline.com/~tom_at_work/fpc-2.4.2.UNOFFICIAL.arm-linux.tar . Again ARMv5 eabi with softfloat.
 +
 +
Or build your own.
 +
 +
2> Install the Android SDK
 +
 +
3> Install ant, for example:
 +
 +
urpmi ant
 +
 +
4> Open the project PascalNotes4Android/pascalsrc/pascalnotes4android.lpi in Lazarus and build it's build mode Android
 +
 +
5> Copy the generate executable
 +
 +
  cp pascalsrc/pascalnotes4android libs/armeabi/libpascalnotes4android.so
 +
 +
if the directory libs/armeabi doesn't exist, create it
 +
 +
6> Build the APK file in debug mode
 +
 +
  ant debug
 +
 +
7> Connect your phone and make sure you can connect to it via ADB
 +
 +
8> Install the APK file in your phone via ADB or whatever other method you prefer:
 +
 +
  ../android-sdk-linux_x86/tools/adb install bin/PascalNotes4Android-debug.apk
 +
 +
If the package is already installed you need need to do this instead:
 +
 +
  ../android-sdk-linux_x86/tools/adb uninstall com.pascalnotes
 +
  ../android-sdk-linux_x86/tools/adb install bin/PascalNotes4Android-debug.apk
  
 
==References==
 
==References==
  
 
* http://developer.android.com/guide/developing/other-ide.html
 
* http://developer.android.com/guide/developing/other-ide.html

Revision as of 14:43, 17 December 2010

Go back to Android Interface

Knowing general Android programming can be very useful to help developing the Lazarus Android Interface.

Creating a new Java Android Application

See here: http://developer.android.com/guide/developing/other-ide.html

Android API Hello World in Pascal

Here is an example Pascal application written for Android.

<delphi> program pascalnotes4android;

{$mode objfpc}{$H+}

uses

 Classes, androidpipescomm, androidui, javalang;

{$R *.res}

var

 layout: TAbsoluteLayout;
 params: TAbsoluteLayout_LayoutParams;
 tv: TTextView;
 et: TTextView;
 btn: TButton;

begin

 // Here add any initialization.
 // Any initialization code will be run inside Activity.onCreate,
 // so keep it as short as possible!
 // It should mostly contain GUI initialization
 // User interface
 // Prepares the UI of the program
 layout := TAbsoluteLayout.Create;
 tv := TTextView.Create;
 tv.setText('The first Pascal Android application =)');
 params := TAbsoluteLayout_LayoutParams.Create(320, 300, 0, 120);
 layout.addView(tv, params);
 params.Free;
 et := TEditText.Create;
 et.setText('edit me please');
 params := TAbsoluteLayout_LayoutParams.Create(320, 50, 0, 0);
 layout.addView(et, params);
 params.Free;
 btn := TButton.Create;
 btn.setText('Go!');

{ btn.setOnClickListener(buttonClickCallback);}

 params := TAbsoluteLayout_LayoutParams.Create(320, 50, 0, 60);
 layout.addView(btn, params);
 params.Free;
 Activity.setContentView(layout);
 // Now tell Java that the initialization has finished
 myAndroidPipesComm := TAndroidPipesComm.Create;
 myAndroidPipesComm.InitializationFinished();
 // Here you can add any other initialization,
 // specially non-GUI code
 // Now we block our execution waiting for callbacks from Java
 myAndroidPipesComm.MessageLoop();

end. </delphi>

Simple Android app.png

Compiling the example project in Linux

1> Get a working arm-linux cross-compiler which generates ARMv5 eabi with softfloat (as many phones like HTC Wildfire have no FPU)

To do this one can download an unofficial build from here:

http://members.yline.com/~tom_at_work/fpc-2.4.2.UNOFFICIAL.arm-linux.tar . Again ARMv5 eabi with softfloat.

Or build your own.

2> Install the Android SDK

3> Install ant, for example:

urpmi ant

4> Open the project PascalNotes4Android/pascalsrc/pascalnotes4android.lpi in Lazarus and build it's build mode Android

5> Copy the generate executable

 cp pascalsrc/pascalnotes4android libs/armeabi/libpascalnotes4android.so 

if the directory libs/armeabi doesn't exist, create it

6> Build the APK file in debug mode

 ant debug

7> Connect your phone and make sure you can connect to it via ADB

8> Install the APK file in your phone via ADB or whatever other method you prefer:

 ../android-sdk-linux_x86/tools/adb install bin/PascalNotes4Android-debug.apk

If the package is already installed you need need to do this instead:

 ../android-sdk-linux_x86/tools/adb uninstall com.pascalnotes
 ../android-sdk-linux_x86/tools/adb install bin/PascalNotes4Android-debug.apk

References