现在的位置: 首页 > 综合 > 正文

Lazarus开发Android应用程序指南

2014年01月22日 ⁄ 综合 ⁄ 共 7227字 ⁄ 字号 评论关闭

Lazarus开发Android应用程序指南(中文首发) 
 
本指南为中文版本首发,版权由delphicn所有,QQ1339838080(tom),转载请保留版权信息。文中难免有错,欢迎指正。 
 
本文件描述的安装环境为Windows XP SP3 
1.  下载和安装配置FPCLazarus安卓(Android)开发环境: 
 

1.1 下载安装JDKhttp://www.oracle.com/technetwork/java/javase/downloads/index.html,如图1和图2所示。 


1.2下载安装Android SDK 
从以下网址下载安卓SDK开发包:http://developer.android.com/sdk/index.html,选择如图3所示。 
 

首先安装JDK,然后安装Android SDK。安装完SDK后需要下载相应的SDK包,打开程序->Android
SDK tools->SDK Manager 安装SDK 2.2 


 

后面的例子会用到。 
 
 
1.3 下载安装Android NDK http://developer.android.com/sdk/ndk/index.html 

 

5

 
注意:NDK后来改为下载:android-ndk-r7-windows.zip这个包,上面那个包中的arm-linux-ld.exe编译时会出错,使用这个包中的不会出错了。地址:http://dl.google.com/android/ndk/android-ndk-r7-windows.zip   
NDK解压缩就可以了。  
1.4检查以下路径的工具是否正确,由NDK安装的。例如我的环境:D:\AndroidFPC\ NDK\android-ndk-r7b\toolchains\arm-linux-androideabi-4.4.3\prebuilt\windows\bin。检查库路径:D:\AndroidFPC\NDK\android-ndk-r7b\platforms\android-8\arch-arm\usr  
备注:已成功把最新Svn trunkLazarus0.9.31FPC 2.5.1打包成一个安装文件。可以正常安装使用了,不会出错,可以正常生成安卓文件。以下1.51.10的步骤都可以跳过。2.1的出错后重定位部分的步骤也可以跳过了。这个安装包放115网盘。网盘地址在第3帖最后。  
1.5下载FPC 2.5.1119版),首先你需要有SVN下载工具。新建一个文件夹,然后SVN检出FPC源码,版本号是16790。新建一个文件夹D:\AndroidFPC\FPC251用于存放SVN源码,右击文件夹选择SVN检出,版本号16790,如图6所示 

6

1.6安装FPC 2.4.4 简单的安装法是安装Lazarus 0.9.30.2,因为已经包含了。用来编译生成fpcrossarm.exe ,后面会介绍。 1.7创建构建脚本并且构建它。先创建输出文件夹:D:\AndroidFPC\FPC251\output

创建一个批处理文件在以下文件夹 D:\AndroidFPC\FPC251   ,文件名build.bat,内容如下:
SET PATH=D:\lazarus\fpc\2.4.4\bin\i386-win32\
make crossinstall CPU_TARGET=arm OS_TARGET=linux CROSSBINDIR=D:\AndroidFPC\NDK\android-ndk-r7b\toolchains\arm-linux-androideabi-4.4.3\prebuilt\windows\bin OPT=-dFPC_ARMEL BINUTILSPREFIX=arm-linux-androideabi-
INSTALL_PREFIX=D:\AndroidFPC\fpc251\output
pause
 

现在双击运行build.bat5分钟后,在D:\AndroidFPC\FPC251\output文件夹中会有两个文件夹:bin  unitsFPC编译器在D:\AndroidFPC\FPC251\output\bin\i386-win32文件夹中,名为:ppcrossarm.exe ,成功构建,这个文件是重点。

1.8复制交叉编译工具
D:\AndroidFPC\NDK\android-ndk-r7b\toolchains\arm-linux-androideabi-4.4.3\prebuilt\windows\bin复制3个交叉二进制工具到D:\AndroidFPC\FPC251\output\bin\i386-win32文件夹中。这三个文件的名称为:arm-linux-androideabi-as.exe  arm-linux-androideabi-ld.exe   arm-linux-androideabi-strip.exe ,重新命名为:arm-linux-as.exe  arm-linux-ld.exe   arm-linux-strip.exe 。这里注意1.3的描述。
 
1.9 安装新版Lazarus
现在我们需要安装最新版本lazarus,把原来的Lazarus 0.9.30.2卸掉,不要忘记同时清理C:\Documents and Settings\你的用户名\Local
Settings\Application DataLazarus的文件夹。从ftp.freepascal.org/ /pub/lazarus/snapshots/下载最新版本的Lazarus 安装。我安装的是:Lazarus-0.9.31-35521-fpc-2.7.1-20120221-win32.exe这个版本。新版已经打包,在115网盘中,自己打包的。
 
1.10 合并工具到Lazarus环境。
复制D:\AndroidFPC\FPC251\output\bin\i386-win32中所有文件到 Lazarus安装文件夹D:\lazarus\fpc\2.7.1\bin\i386-win32 ,复制文件夹D:\AndroidFPC\FPC251\output\units\arm-linuxD:\lazarus\fpc\2.7.1\units中。
 
到了这一步,我们在Windows的中的lazarus部分就配置成功了。下面还有工具及设置要调整。
 
1.11下载安装设置Ant 。从以下地址:http://www.apache.org/dist/ant/  ;选择ant-current-bin.zip下载就可以了。下载后解压缩,把解压后的文件夹放在:C:\Program
Files文件中,然后在环境变量中配置如以下图:
图8
8图
 
至此,所有windows配置及工具已经全部下载安装完成,可以开始调试程序了。



2.  编译lazarus中的Android示例程序。
示例是在lazarus/examples/androidlcl/androidlcltest.lpi  。我这里把示例程序放在了D:\AndroidFPC\demo\demo中,所以以下示例都以此为准。
 
2.1重新设置Lazarus 

 
在打开示例程序之前,我们先要把lazarus重新设置一下,进入最新安装的Lazarus文件夹lazarus\fpc,把2.7.1改为2.5.1,然后重新打开lazarus,会出错, 

9
然后重新选择一下fpc的编译器及源码位置,
 
11
Start IDE,启动lazarus,打开后选择工具->选项,查看环境是否正确设置:
12
点工具->重新扫描FPC源代码目录。好了。注意,这样配置以后,只能编译生成android项目,其它标准工程会出错。
如果已经安装好lazarus-0.9.31-35594M-fpc-2.5.1-20120229-win32.exe这个安装包,请从这里开始。好了,可以打开android示例了,打开,然后进行工程设置。工程->工程选项->编译选项->路径:
13
调整红色框部分,添加两个路径:
1):D:\AndroidFPC\NDK\android-ndk-r7b\platforms\android-8\arch-arm\usr\lib
2):D:\AndroidFPC\NDK\android-ndk-r7b\toolchains\arm-linux-androideabi-4.4.3\prebuilt\windows\lib\gcc\arm-linux-androideabi\4.4.3
如图所示:

 

14
 
Build modes 

 

15
代码:

 

16
其它具体选项查看示例工程,不再一一列举。
 
2.2 开始编译及构建android示例。
如果已经按照以上的设置好了android工程,你现在可以Shitf+F9构建工程了。
17
成功编译了,多么激动人心啊!
 
2.3 构建APK
在你使用命令行构建APK之前,请你先打开示例中android文件夹下的local.properties文件。
打开后可以看到:
# This file is automatically generated by Android Tools.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file must *NOT* be checked in Version Control Systems,
# as it contains information specific to your local configuration.
 
# location of the SDK. This is only used by Ant
# For customization when using a Version Control System, please read the
# header note.
sdk.dir=/home/felipe/Programas/android-sdk-linux
修改最后一行为本机Android SDK的文件夹:sdk.dir=C:/Program Files/Android/android-sdk
进入命令行方式,开始构建APK
CD lazarus\example\androidlcl/android
Ant debug
我这里直接写了一个批处理,你们可以自己写一个。可以直接运行demo中的批处理文件:构建APK.bat 
 
好了,构建的apk文件在lazarus\example\androidlcl/android/bin中。如果出现找不到tools.jar,请把C:\Program
Files\Java\jdk1.7.0_03\lib\tools.jar 复制到C:\Program Files\Java\jre7\lib文件夹。
 
 
2.4 安装APK到你的手机并且运行。
你可以通过ADB安装或者复制文件到你的手机的SD卡,就可以运行它。关于ADB请看3.1中的ADB
Install的内容。在安装之前我们先创建Android模拟器,看3.1中的内容。





3.  Android模拟器和手机中运行APK
 
3.1创建并设置模拟器。
运行程序中的Android SDK Tools android AVD管理器,创建一个新的模拟器设备:
 

 

18
点击New,设置如下:
 

 

19
SD Cardsupport 需要点右边的New才能添加进去。
点击Create AVD,好了,创建了一个模拟器了。
 

 

20
 
3.2运行模拟器
现在我们运行模拟器。点击Start
 

 

21
Launch,开始运行了,等待几分钟,模拟启动完成。
 
 

 

22
如果第一次出现运行错误,不要管它,请关闭,重新再开始。
 
3.3安装和运行APK程序
启动完成模拟器才可以安装程序。
进入命令行方式,进入文件夹:C:\Program Files\Android\android-sdk\platform-tools
使用如下命令把前面生成的apk文件安装进去。
Adb install <apk文件路径>
我这里是adb install D:\AndroidFPC\demo\demo\android\bin\LCLExample-debug.apk,或者运行demo中的批处理文件:安装APK.bat,等它完成。
 

 

23
显示Success就成功应用软件安装进模拟器了。
Adb常用命令:
Adbinstall <apk文件路径>  安装apk到模拟器
Adb uninstall<apk文件路径卸载apk
Adbdevices   列出所有模拟器设备
Adblogcat  调试器实时记录

 

看我们的LCL Test
 

 

24
 
运行后:
 

 

25
4.示例程序NDK OpenGL
这些需要用到2.3SDK,请先下载安装好。
41下载安装Android NDK Android SDK Ant
42安装FPC交叉编译器。
43 SVN下载最新的lazarus-ccr sourceforge源码:https://lazarus-ccr.svn.sourceforge.net/svnroot/lazarus-ccr
或者直接下载:lazarus-ccr/bindings/android-ndk里面的源码就可以了。
4打开lazarus-ccr/bindings/android-ndk/examples/opengltest/opengltest.lpi ,路径设置一下,具体看示例。编译生成。
4配置一下local.properties文件。
4构建APK,安装模拟器2.3.3

 

5.如何创建一个新的LCL  Android应用程序
以下部分是参考官网和自己研究所得:
创建一个新的LCL-CustomDrawn-Android应用程序可以简单的从示例程序复制。这个示例程序可以从lazarus/examples/androidlcl中找到。然后你需要修改构建文件来变成你自己的新的工程名称和新的Java包名称。
5.1 创建LPI文件
此时你需要一个单独的LPI文件来用于安卓应用程序版本,但是所有其它代码可以被共享。
创建它可以从新建->工程->库来建立一个新的文件,然后从示例程序中来改写其它的代码。你需要改写工程LPR文件exported部分的JNI属性名字为你的安卓包的名字。
5.2构建库文件
首先,工程去掉debug信息。Debug信息对安卓没用,并且它使得执行文件的体积太大。看图:
 
 

 
 
 

29
5.3 创建安卓工程结构
和一般的LCL工程构建比起来,像这样配置一个正确的LPI并且拥有一个库主工程文件,也只需要添加所有的安卓工程结构。完全从示例程序复制就可以了,然后修改适应新的工程。然后更改SDK路径,包名称。包的名称需要在新的工程文件中修改。在文件夹android/src/包名称,在activity
java源代码并且在工程的库文件pascal代码中,在exports部分。
上面是翻译了官网和,
自己研究如下:包文件名称和路径要和LPR中的文件名要一样。这里的包指的是Android包。
 

 
 

31
以上两图是同一张图,看红色框部分。再看Androidjava包的文件路径,看下图。
 

 

32
看文件路径名称同样为:src\com\pascal\truetest\LCLactivity
注意:Java文件要加入到工程中去,打开java文件然后菜单 工程->添加代码编辑器中的文件到工程。后来研究了一下,这里不一定。
 
还要调整编译后的so文件名称和 java中的一样。说明如下:
LCLActivity.java文件中最后部分,第621行:
 

 

33
看黑色框中的lclapp  ,那么你的编译后的导出库名称也要lclapp ,看工程选->编译选项->路径->Target
file name,看图:
 

 

34
注意,lclapp.so前的libso文件存放路径位置。
 
安卓程序的图标和文件名称的更改:
图标和文件名称存放在以下位置中android\res\ drawable-hdpidrawable-mdpidrawable-ldpi三个文件夹,分别存放72x7248x4836x36大小两种图标。而values文件中的strings.xml文件中就是存放安卓文件名称了,打开修改    <string
name="app_name">LCLTest</string>部分的LCL Test就可以了。如是是中文名称,请把文件另存为utf8格式。
 
生成的APK名称在这里定义:android\build.xml中定义,在2行:
<projectname="LCLExample" default="help">  LCLExample改为你自己的名称。
 
6.在Android2.2(API 8)中可用的NDK 
LCL-CustomDrawn设计目标为 Android2.2+ 并且 API库在NDK中如下支持:
(1)   libc.so
(2)   libdl.so(linker)
(3)   OpenGL ES 1
(4)   OpenGL ES 2
(5)   libjnigraphics.so
(6)   liblog.so
(7)   libm.so

抱歉!评论已关闭.