|
我写了整合FPC与Eclipse的JVM编译器做Android开发的一些注意事项。设置完成后,你应该能够做Android开发的只有一个显着的差异,从正常的基于Eclipse的开发使用Pascal,而不是Java的Android的Java API:你会写。如何漂亮的是什么?让我知道,如果你发现任何错误,我写了什么,或者如果我遗漏了什么重要的东西。例如,这是足够的信息以开始浏览网页吗?是一个不平凡的例子,也许需要使用SQLite数据库?
本文转自网络,以下是使用google翻译,如有雷人之处,可看原地址,敬请谅解!
原文地址在楼下!thank you Phil
用Pascal和Eclipse的Andr​​oid开发 内容简介
需求
安装
入门的
技巧和注意事项
介绍这些笔记介绍了如何设置Eclipse做Android开发的Pascal。两个附加工具提供了Pascal的支持:
- Free Pascal中的JVM编译器。编译器生成Java字节代码,并创建普通的Java类文件时,编译Pascal源文件。包含为访问的android.jar运行库的一个Pascal单元。
- 帕斯卡生成器的机器人(PBA)。这是一个简单的控制台应用程序,帮助与Eclipse的集成帕斯卡。当Eclipse构建了一个项目,它运行了一系列的“建设者”。PBA只是一个自定义生成器,您添加到您的Andr​​oid项目。当你建立一个Android项目,PBA执行以下操作:
- 对于每一个“活动”,您添加到您的Andr​​oid项目,PBA创建一个相当于帕斯卡单位的下一次它的运行。
- 解析Android项目的的R.java文件资源文件和创建相当于Pascal的的单位(Rjava.pas)的。
- 用适当的路径和交换机推出FPC的JVM编译器编译Android项目的Pascal文件。
需求 安装- FPC JVM的编译器。完整的建立说明是在wiki.freepascal.org / FPC_JVM /建筑,但这里的短版。请注意,这里假设你已经有了一个非JVM FPC的编译器安装目录(例如,稳定版本2.6.0)。
- 从Subversion版本库的的FPC主干源。更改的目录,你想放的签出的源文件,然后输入此:
svn的合作http://svn.freepascal.org/svn/fpc/trunk。 - 下载ftp://ftp.freepascal.org/pub/fpc/contrib/jvm/fpcjvmutilities.zip,解压缩,然后的地方jasmin.jar上的某个地方你的路径。
- 切换至您的FPC结帐的utils的/ fpcm的目录中,,并建立 fpcmake:清除所有的然后移动产生的fpcmake可执行文件的检出目录以外的任何地方。
- 建立FPC JVM编译器。在我的Mac上,我把这个脚本文件(SH),便于以后再次运行它:
make_path = /用户/菲尔/工具/ fpctests / fpcmakeINSTALL_PATH = /用户/菲尔/工具/ fpcjvm的的FPCMAKE = $ make_path CROSSOPT =“-O2-G”CPU_TARGET的= JVM OS_TARGET =机器人INSTALL_PREFIX = $ INSTALL_PATH所有crossinstall当make完成后,你将拥有的FPC JVM编译器(ppcjvm)的编译系统单元,编译androidr14单位提供访问整个Android RTL的。
- 帕斯卡尔生成器的机器人。
- 这样使用一个非JVM FPC的编译器编译PBA:
FPC PBA - 如果你有拉撒路,你也可以编译PBA。在拉撒路,选择“文件”|打开,选择pba.lpi的文件。选择“运行”编译来编译它。
- Android的SDK。Android工具和Eclipse假设您有您的开发计算机上安装Java。如果没有,请下载JDK从 www.oracle.com / technetwork的/ JAVA / index.html的。请注意,我并不需要我的Mac上安装任何额外的Java软件,你可能并不需要下载的JDK或者。
一旦安装,你也有下载一些额外的碎片。我只下载使用SDK的Android的SDK管理器的基本知识:
- Android SDK平台的工具
- SDK平台
- ARM EABI V7A系统映像
- Android的支持库(下额外)
提示:当你在它的Android SDK管理器,如果你想测试你的应用程序在Android模拟器(但要注意的,至少创建一个虚拟设备(工具|管理AVDS),仿真器是可怕的慢)。 - Eclipse中。一旦你已经安装了Eclipse,按照说明进行操作,并安装ADT插件(developer.android.com /工具/ SDK / eclipse-adt.html的的的)。
- 添加的PBA,以Eclipse作为外部工具。
- 启动Eclipse,然后选择“ 运行外部工具|外部工具配置。
- 选择程序,单击新建图标(+)。
- 在“ 名称“中,输入一些适合喜欢帕斯卡尔生成器。
- 在“ 位置“中,PBA每安装上面的步骤2 输入完整的路径。在我的Mac上,我输入:
/用户/菲尔/工具/ jvmtests的的/ PBA - 在“ 参数“中,输入三个项目,由空格分隔。该项目是(I)到ppcjvm的路径(见上面的步骤1),(2)宏路径的Android项目的占位符,及(iii)的FPC-FD开关的所在的目录放置jasmin.jar。在我的Mac上,我输入:
~/ Tools/fpcjvm/lib/fpc/2.7.1/ppcjvm为$ {project_loc} -FD/usr/local/bin提示:您可以包括其他FPC开关,如果有必要(例如,额外的富开关)。
您只需要再次输入此信息。对于每一个Android项目,你会简单地导入外部工具Eclipse的“建设者”。
入门要测试安装,创建一个简单的Andr​​oid应用程序。这个测试,你不会做任何编码。
- 在Eclipse中,选择“ 文件|新建|项目。
- 在“新建项目”对话框中,选择“ 应用程序“项目,然后单击“Next”(下一步)。
- 在新的Andr​​oid应用程序“页上,填写在以下方面:
- 应用程序的名称。例如,Tooltest。
- 项目名称。您可以使用提供的默认。
- 包的名称。您可以使用提供的默认的测试应用程序。通常情况下,你将进入你的公司或项目,加上反向域名的应用程序标识符(例如,com.mycompany.myapp)。包的名称必须是唯一的,并且在整个项目中使用,包括在项目的帕斯卡单位“命名空间”。
单击“下一步”。 - 再次单击“下一步”跳过配置发射器的图标。
- 在创建活动中,选择BlankActivity“ ,然后单击“下一步”。
- 在新的空白活动页面中,接受默认设置(MainActivity)布局名称(activity_main)的活动名称,并单击“完成”。
- 一旦Eclipse创造了新的Andr​​oid项目,你会看到在Package Explorer中的项目的结构。它应该看起来像图1。 图1。在一个典型的Eclipse Android项目的文件夹和文件。

SRC - 这是项目的Java源文件会去的地方,但因为我们正在开发用Pascal,您将无法使用此文件夹。
GEN -每次生成项目时,Eclipse中提取资源标识符的所有项目的XML资源文件R.java文件创建一个新的 文件,PBA皈依R.java文件Rjava.pas每次的更新。
资产 - 数据库文件,图片等,都可以放在这里与您的应用程序的部署。
斌-编译后的文件(扩展名为。类)被放置在这里下 类的。apk文件,部署在这里创建了。
库-将所有的jar文件,你的应用程序需要在这里,你可以创建一个jar文件,从编译的类文件帕斯卡。以及从已编译的Java类文件。
水库- XML资源文件中去注意Eclipse的打开了 activity_main.xml的的资源文件中的图形布局设计,您也可以切换到原始的XML编辑器来查看和编辑布局(见图2)。
AndroidManifest.xml文件 - 项目的manifest文件,通常这个文件让Eclipse管理。
图2。Eclipse的布局设计师。
 - 将PBA添加到您的项目作为一个建设者。
- 在Eclipse中,选择“ 项目“|”属性“。
- 在“属性”对话框中,选择“ 建筑商“。注意列表的建设者,是项目的一部分。
- 单击“ 导入和选择帕斯卡生成器,你定义为一个外部工具上面。
- 选择“帕斯卡尔生成器”,然后单击“ 移动它上面的Android程序包生成器在构建序列。
- 生成项目。如果你打开​​Eclipse的控制台,您应该会看到熟悉的FPC输出。提示:如果你得到一个错误信息,这可能意味着你没有PBA配置,适当的外部工具。如果您编辑帕斯卡生成器的配置,你将需要删除的项目的Pascal生成器,并重新导入使用更新后的配置。
- 刷新Eclipse的。要查看你的项目的Pascal文件(PBA)创建,在Package Explorer中选择项目,然后选择“文件”|“刷新”。您现在应该看到一个 在Package Explorer中的PAS文件夹。展开它,选择“ MainActivity.pas“ 。用鼠标右键单击它并选择“打开方式”|“文本编辑器”,在Eclipse中打开它。您也可以打开Rjava.pas看到项目的资源标识符。请注意如何MainActivity.pas引用两个资源标识符。
提示:如果你双击一个帕斯卡文件,它会打开任何程序,你有相关的扩展名为。PAS。在我的Mac,这是TextWrangler。如果你愿意,你就可以编辑你的源与一个更熟悉的编辑器,而不是在Eclipse的编辑器(参见图3)。
图3。帕斯卡尔样板代码的Andr​​oid“活动”(看TextWrangler)。
 - 在Android模拟器中运行的应用程序。您的项目在Package Explorer中右键单击,然后选择“ 运行方式| Android应用。Eclipse将推出Android模拟器,经过漫长的延迟,您的应用程序将启动,并显示的“Hello world!” 按Esc键退出应用程序在模拟器中。
提示和注释- 您现在访问几乎整个Eclipse和Android的工具集。这不仅是一套完整的Android窗口小部件,并铺设了一个图形化设计,但也获得完整的Android运行。感的幅度 FPC签出文件夹的RTL /机器人/ JVM目录,用文本编辑器中运行时,打开的文件androidr14.inc。这个文件是超过50,000线长,它为您提供了与FPC使用的编译androidr14单位-你没有做任何事情,除了把它添加到你的单位使用语句。
- 由于FPC不支持点符号为单位的名称,你会看到androidr14.inc的Java类名已使用每包和类名的第一个字母简称。例如,在Android类 SQLiteDatabase在android.database.sqlite包被命名 使用帕斯卡尔ADSSQLiteDatabase为。其完整的Pascal的声明(在androidr14.inc),如果你看一下,你可以看到它指的是外部的包和类:
ADSSQLiteDatabase =类外部的android.database.sqlite“的名称SQLiteDatabase(ADSSQLiteClosable) - 您可以使用一个Java类相同的方式,使用Pascal类。例如,使用SQLiteDatabase类打开一个SQLite数据库,你会这样写:
VAR 文件名:字符串; DB:ADSSQLiteDatabase;开始 文件名:='/数据/数据​​/ com.mycompany.myapp /的数据库/ mydb.sqlitedb'; DB:ADSSQLiteDatabase.openDatabase(文件名,零,ADSSQLiteDatabase.OPEN_READONLY)的;在这种情况下中的OpenDatabase是一个类的函数返回一个SQLiteDatabase类的实例,如果成功打开指定的数据库。 - 这是一个好主意,有androidr14.inc开放编程,这样你就可以快速找到一个简短的类名,或者看到你要调用的方法的Pascal签名。
- 对于一个类的方法的说明,请参阅在Android上线文档,例如:developer.android.com /文献/机器人/数据库/的SQLite / SQLiteDatabase.html的
- 添加到你的Android项目的另一项活动,在Eclipse中请选择“ 文件“|”新建其他,然后选择Android的活动,然后单击“下一步”,并按照步骤。作为该项目的主要活动,由此产生的Pascal文件将包含相同的样板代码-只要修改其代码和布局。
- 记录在这里,您可以使用javapp.jar的控制台应用程序(包括FPC的JVM的实用程序。邮编)创建一个Java的jar文件的Pascal接口单元。例如,工作与PhoneGap的插件类从org.apache.cordova.api 包,运行javapp.jar对cordova.jar文件,如在下面的示例脚本:
and_path =~/ Tools/android-sdk-macosx/platforms/android-16/android.jarcord_path =~/ Tools/phonegap-current/lib/android/cordova-2.1.0.jarJAVA-JAR的/ usr /本地/ bin中/ javapp.jar的启动类路径$ and_path-classpath的cord_path保护邻cordova_api org.apache.cordova.api。这将创建PhoneGap的插件类的的文件cordova_api.pas和cordova_api.inc帕斯卡声明。 - 在Android项目中使用。jar文件,在Eclipse中选用 项目|“属性”,选择“ Java构建路径“,然后单击库选项卡。如果您添加的jar文件到您的项目的libs文件夹,单击“ 添加JAR文件,并选择它。jar文件,如果是外部到您的项目,单击“ 添加外部JAR和导航到。
- 编译自己的帕斯卡尔外单位的Eclipse,您可以创建一个简单的脚本看起来像这样:
comp_path =~/ Tools/fpcjvm/lib/fpc/2.7.1rtl_path1 = comp_path元/台/ JVM的Andr​​oid / RTLrtl_path2 = comp_path元/台/ JVM的Andr​​oid / RTL /组织/ FreePascal的/ RTL$ comp_path / ppcjvm Tandroid-XP-富rtl_path1富rtl_path2-O2-G someunit.pas的第二RTL路径不严格需要编译,但如果不包括的话,你会得到一个警告。 - 使用Java JAR实用程序创建一个jar文件包含自己的类文件。例如,如果你的单位有“myunits的”命名空间,你会进入这样的事情:
JAR-的CVF myunits.jar myunits的所有。class文件下myunits目录被添加到myunits.jar的。 - 这两个jar和。apk文件是ZIP格式的压缩文件,所以就像你将任何zip文件,可以查看其内容。
版权所有2012年由菲尔·赫斯。macpgmr(上)fastermac“(点)的净 首先发布2012年11月4日。
|
|