本帖最后由 delphicn 于 2013-5-15 23:56 编辑
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常用命令: Adb install <apk文件路径> 安装apk到模拟器 Adb uninstall <包名称> 卸载apk Adb devices 列出所有模拟器设备 Adb logcat 调试器实时记录
看我们的LCL Test:
图24
运行后:
图25 4.示例程序NDK OpenGL 这些需要用到2.3的SDK,请先下载安装好。 4.1下载安装Android NDK ,Android SDK 和Ant 4.2安装FPC交叉编译器。 或者直接下载:lazarus-ccr/bindings/android-ndk里面的源码就可以了。 4.4 打开lazarus-ccr/bindings/android-ndk/examples/opengltest/opengltest.lpi ,路径设置一下,具体看示例。编译生成。 4.5 配置一下local.properties文件。 4.6 构建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 以上两图是同一张图,看红色框部分。再看Android的java包的文件路径,看下图。
图32 看文件路径名称同样为:src\\com\\pascal\\truetest\\LCLactivity | 。 注意:Java文件要加入到工程中去,打开java文件然后菜单 工程->添加代码编辑器中的文件到工程。后来研究了一下,这里不一定。
还要调整编译后的so文件名称和 java中的一样。说明如下: LCLActivity.java文件中最后部分,第621行:
图33 看黑色框中的lclapp ,那么你的编译后的导出库名称也要lclapp ,看工程选->编译选项->路径->Target file name,看图:
图34 注意,lclapp.so前的lib和so文件存放路径位置。
安卓程序的图标和文件名称的更改: 图标和文件名称存放在以下位置中android\\res\\中 ,drawable-hdpi、drawable-mdpi、drawable-ldpi三个文件夹,分别存放72x72、48x48、36x36大小两种图标。而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 (8) libthread_db.so (9) libstdc++.so 当前LCL-CustomDraw-Android 使用 libjnigraphics.so 和 liblog.so 。
7.本地文本绘制 在安卓中本地文本绘制有一些费解并且这个帮助文件也相当糟糕。一些已经了解的在如下: (1) 绘制文本开始以Y坐标作为基准线, (2) 没有帮助文件描述Paint.setTextSize中的尺寸是如何的。有些人说是像素,但是我看到一些不同,它好像依赖于不同设备之间。 (3) 也有一些好的事情: l 可以绘制透明的位图并且使用alphi透明度去实现anti-aliasing(反钜齿处理)和 subpixel rendering(子像素渲染)。文本变得十分漂亮。 l 也可以绘制ARGB 32位非像素格式也是相当漂亮的。
8.Lazarus开发组的实现路线 2012-2-24 [strike](1) [/strike][strike]构建 Lazarus Custom Drawn [/strike][strike]控件组。已完成[/strike] [strike](2) [/strike][strike]为安卓API[/strike][strike]初始化绑定。已完成[/strike] [strike](3) [/strike][strike]创建一个应用程序自动生成绑定。已完成[/strike] [strike](4) [/strike][strike]开始一个新的widgetset[/strike][strike](组件集,构件集)。已完成[/strike] [strike](5) [/strike][strike]实现对JNI[/strike][strike]的支持。已完成[/strike] [strike](6) [/strike][strike]合并Lazarus Custom Drawn [/strike][strike]控件到LCL[/strike][strike]并且用它们实现所有最基本的控件。已完成[/strike] [strike](7) [/strike][strike]为安卓添加文本支持。已完成[/strike] [strike](8) [/strike][strike]实现基本窗口客户区滚动。已完成[/strike] (9) 为桌面平台添加手机模拟器。进行中 (10) 改善手机滚动。尚未进行 [strike](11) 在X11中添加文本支持。已完成[/strike] [strike](12) 在LCL中添加DPI感应度和自适应。已完成[/strike] [strike](13) 添加非本地化文本支持通过pasfreetype 。已完成[/strike] 9.关于LazarusCustom Drawn 接口 一个跨平台LCL后端,完全在lazarus内使用Object Pascal编写的。Lazarus 到 Android的接口。LCL-CustomDrawn-Android有以下特性: 此部分尚未完成整理。
10.官方论坛看到的资料
为了方便大家下载以下的JDK,SDK,NDK,ANT,本人已经全部打包了,请到金山快网盘下载: | http://www.kuaipan.cn/file/id_62695037779050499.html
或者从这里下载:https://skydrive.live.com/?cid=89ae6b50650182c6# 进入公开,直接点击Tools.rar 。
已打包版本从里下载:
[strike]4月28日绿色版:lazarus1.1-37052-fpc2.5.1-Android.rar [/strike]
[strike]5月08日绿色版:lazarus1.1-37216-fpc2.5.1-Android.rar [/strike]
[strike]5月11日绿色版:lazarus1.1-37252-fpc2.5.1-Android.rar [/strike]
[strike]6月24日绿色版:lazarus1.1-37752-fpc2.5.1-Android.rar [/strike]
8月04日绿色版:lazarus1.1-38150-fpc2.5.1-Android.rar 金山快盘:http://www.kuaipan.cn/file/id_62695037779050498.htm
另一个地址:https://skydrive.live.com/?cid=89ae6b50650182c6# 进入公开,直接点击lazarus1.1-38150.rar 。
2013年05月12日新版已发布,这次支持FPC2.7.1了:http://www.fpccn.com/thread-2872-1-1.html
关于绿色版介绍请看另一帖:http://www.fpccn.com/read.php?tid=1769 |