创建Android应用程序

来自RAD Studio
跳转到:航行,搜索

转到Android移动应用程序开发


本页介绍如何开发针对Android平台的多设备应用程序。请参见Android移动应用程序开发用于不特定于开发阶段的主题,例如配置PC和Android设备以与RAD Studio协同工作。

要创建支持Android的多设备应用程序,请执行以下操作:

文件>新建>多设备应用程序-德尔福
文件>新建>多设备应用程序-C++生成器

然后在多设备应用程序向导。

FireMonkey Android应用程序的组件限制

当您在RAD Studio中设计Android应用程序时,只能使用Android设备支持的组件。当Android是主动目标平台对于您的项目,不支持的组件显示为灰色工具选项板.

样式选择器

在多设备的顶部表单设计器是样式选择器:样式表单Des.png

样式选择器的下拉菜单列出了可以应用于硕士视图。

选择安卓样式选择器中的样式,以根据目标平台查看组件上的所有属性。

视图选择器

在多设备的顶部表单设计器是视图选择器:视图FormDes.png

视图选择器的下拉菜单列出了所有可用视图,其中显示了不同的平台,如iOS、Android、Windows和macOS。

使用硕士表单,用于应用程序的总体设计。然后你可以添加新视图以针对特定设备类型自定义应用程序。您甚至可以创建新的自定义视图;看见将自定义视图添加到视图选择器。预定义的Android设备视图为:

  • Android 3.5英寸手机
  • Android 4英寸手机
  • Android 5英寸手机
  • 安卓7英寸平板电脑
  • Android 10英寸平板电脑
  • 谷歌眼镜
注:有关预定义视图分辨率的更多信息,请参见显示器规格.
注:选择安卓目标平台以查看所有可用组件安卓,否则它们显示为灰色。

添加新视图以针对特定的Android设备类型自定义应用程序。所有视图都继承硕士表单。有关更多信息,请参阅表单设计器.

如果您想为所有人自定义应用程序的某些方面安卓您可以使用硕士表单,前提是您不想传播到其他平台。否则,请使用代码编辑器,例如:

//您将在运行时看到应用的更改。
{$IFDEF安卓}
    速度按钮1.样式查找 以下为:= 优先工具按钮;
{$ENDIF}

有关详细信息:

在Android应用程序中使用框架

FireMonkey公司

这个FireMonkey框架非常适合安卓目标平台,及其也支持其他目标平台.

VCL(不适用于Android)

Visual Component Library(VCL)仅在Windows(32位或64位)上可用。

RTL公司

一些提供基本功能的运行时库(RTL)单元对于每个受支持的目标平台(包括Android)都是通用的,例如系统.pas系统。系统实用程序.pas.

许多RTL设备仅支持Android(参见Android API和Java库). 这些单位的前缀为仙人掌 单位范围.

另请参见安卓C RTL.

Android API和Java库

RTL包含许多单元,它们为Android本机API提供Delphi和C++接口。这些单位的范围是仙人掌和通常位于source\rtl\android\RAD Studio安装目录。FireMonkey框架依赖于其中一些单元。如果您愿意,也可以直接使用它们。

您还可以使用RTL未映射的Android API部分,或在项目中使用您自己的Java库:

Android核心库名称不能用作应用程序名称

如果名称与核心库共享对象文件(如<libNAME>.so)的名称冲突,则无法为项目指定名称。

例如,不能将以下任何一项用作项目名称:

  • c(c)(与libc.so冲突)
  • (与libm.so冲突)
  • z(z)(与libz.so冲突)
  • ssl协议(与libssl.so冲突)
  • 用户界面(与libui.so冲突)
  • 图形用户界面(与libgui.so冲突)
  • 摄像头客户端(与camera_client.so冲突)

等等。

移动工具栏和其他FireMonkey组件的对齐建议

为了确保应用程序中的工具栏在iOS和Android平台上的行为和外观相同,您应该在对象检查器,如下所示:

  • 设置排列属性的所有子控件T工具栏例如,以下是排列属性值:
    (左、右、中、目录)
  • 要保持控件之间的间距或工具栏左右边框之间的间距,请设置以下属性:
    例如,假设您有一个工具栏,其中有一个子TLabel作为标题,还有两个左对齐的速度按钮,每个按钮之间有空格:
    1. T工具栏,设置:
      • 对齐=顶部
    2. 在孩子身上T标签,设置:
      • 对齐=内容
    3. 发送TLabel使用上下文菜单返回.
    4. 关于那两个孩子T速度按钮,设置:
  • 要格式化分段控件(具有共享组名的样式化TSpeedButtons),使其位于工具栏的中心,请执行以下操作:
    1. 添加T布局控件添加到TToolBar。
    2. 设置T布局。排列居中.
    3. 将按钮添加到TLayout并为每个按钮设置对齐属性和边距(即,Align=Left、margins=Left和margins=Right,依此类推)。
  • 要使用TLabel,必须设置TLabel。AutoSize=False并设置Align属性。
    • 要使标签在已有按钮的工具栏上居中,必须设置TLabel。Align=内容并选择置于底层在上下文菜单上。

类似的对齐规则适用于其他控件。例如,假设您已经添加了刀闸列表框项目;要使交换机向右对齐并垂直居中,请为TSwitch设置以下属性:

  • 对齐=右侧
  • 右边距=5

在Android应用程序中使用自定义字体

您可以在Android应用程序中使用自定义字体。自定义字体的一个用途是在移动应用程序中用作图标。True-type字体比光栅图像文件有优势,因为字体重量轻,基于矢量,所以可以很好地缩放到高分辨率。您可以将自己的自定义字体安装到开发系统上的系统字体库中。然后,自定义字体应该在IDE中可用,供您在设计时选择。

但是,如果此时将应用程序部署到目标设备,则应用程序中的字体将仅使用设备上可用的已安装字体进行呈现。您需要使用部署管理器以确保您在设计时在IDE中看到的字体复制到设备。

以下是在Android应用程序中加入自定义字体的基本步骤:

  1. 在Windows系统上安装自定义字体。
    • 请参阅Windows帮助和支持在您的系统上获取说明。
    • 例如,右键单击字体文件,然后单击安装.
  2. 将字体文件添加到项目的根目录中。
  3. 对象检查器,将字体指定给文本设置/字体使用该字体的控件的属性。
  4. 将字体文件添加到项目中部署管理器.

创建使用自定义安装字体的移动项目的完整说明和可下载文件(象形异体字)可在此处获得:

要了解字体在特定移动设备的运行时是否可用,您需要检查目标设备是否支持您在设计时使用的字体:

为您的Android应用程序设置所需的使用权限

所有FireMonkey Android应用程序都预先设置了一些基本的Android权限。您应该验证您的Android设备在使用权限项目选项中的第页。

例如:

  • 要使用Android设备的摄像头,请确保启用了以下权限:
    • 照相机
    • 读/写外部存储器
  • 要在Android设备上使用GPS定位,请确保位置访问权限已启用:
    • 访问粗略位置
    • 进入良好位置
    • 访问位置附加命令
  • 要在Android设备上录制音频,请确保启用了以下权限:
    • 录制音频

使用Android设备的后退按钮

要使您的应用程序在用户按下后退按钮,添加事件处理程序到您的表单OnKeyUp,并在事件处理程序中使用以下代码:

德尔福:

如果 钥匙 = vk硬件返回 然后
开始
  //在这里你想做什么就做什么
  钥匙 以下为:= 0; //如果要阻止默认操作,请设置Key=0
结束;

C++语言:

如果 (钥匙 == vk硬件返回) {
    //在这里你想做什么就做什么
    钥匙 = 0; //如果要阻止默认操作,请设置Key=0
}
提示:这个带导航的选项卡 移动模板实现此事件处理。

使应用程序以全屏模式运行

默认情况下,Android应用程序显示Android状态栏/标题栏。

如果希望应用程序以全屏模式运行并隐藏Android状态/标题栏,请选择项目>选项>版本信息并更改主题键至无标题栏.

有关更多信息,请参阅版本信息.

TEdit和TMemo控件中虚拟键盘的设置

在支持虚拟键盘,当显示TEdit或TMemo控件时,虚拟键盘会自动显示。

要使用户能够通过单击返回钥匙,套件KillFocusByReturn(按返回) =正确.

以多种分辨率使用图标和图像

  • 在Android上,支持以下分辨率:
    1x、1.5x、2x、3x(小、正常、大、超大)
  • 在iOS上,支持以下分辨率:
    1x和2x(非视网膜和视网膜)

通过创建一个多分辨率位图使用MultiResBitmap编辑器.有关更多信息,请参阅使用多分辨率位图.

  • 多分辨率位图在Android上支持以下分辨率:1x、1.5x、2.5x
    (iOS支持1x和2x)

加载和部署文件

为部署应用程序时安卓目标平台,如果您计划在运行时随应用程序一起提供文件以加载这些文件,则必须首先决定是将它们放在内部设备内存上还是放在外部内存(例如SD卡)上。决定后,使用部署管理器将这些文件放在资产\内部(内部)或资产部署期间的(外部)文件夹。

为AndroidAssets.png添加DB

使用以下代码在运行时查找这些文件:

德尔福:

T路径.联合收割机(T路径.获取文档路径, '文件名')  {内部}
T路径.联合收割机(T路径.获取公共路径, '文件名')  {外部}

C++语言:

系统::Ioutils公司::T路径::联合收割机(系统::Ioutils公司::T路径::获取文档路径(), L“文件名”) //内部
系统::Ioutils公司::T路径::联合收割机(系统::Ioutils公司::T路径::获取公共路径(), L“文件名”) //外部

在这个例子中,文件名是文件的名称,例如上面屏幕截图中的“dbdemos.gdb”。这个T路径记录在中声明系统。IO实用程序单位,所以您需要添加系统。IO实用程序在uses子句中。

使用'资产\内部'作为“远程路径”上给定项的列“部署管理器”可停靠窗口只会导致该条目的本地文件最终存储为'资产/内部/<REMOTE-FILE-NAME>'生成的APK文件中的条目。

在应用程序部署期间'.\资产\内部\<远程文件名>'文件路径记录在“<PROJECT-ROOT-DIR-PATH>\Android64\Debug\<PROJject-NAME>\assets\deployinfo\deployedassets.txt”文件等“FMX。启动副本'单元可以在应用程序启动期间利用它来检测所有要复制到'应用程序的内部存储'.

下表包含“FMX。启动复制'工作单位:

Windows设备上的文件 <PROJECT-ROOT-DIR-PATH>\Android64\Debug\VideoPlayerTest\assets\internal\Kayaking.mp4

<PROJECT-ROOT-DIR-PATH>\Android64\Debug\VideoPlayerTest\assets\internal\Ocean.mp4

Android设备上的文件 /data/user/0/com.embarcadero。视频播放器测试/files/Kayaking.mp4

/data/user/0/com.embarcadero。视频播放器测试/files/Ocean.mp4

设备浏览器.png

返回TPath。GetDocumentsPath函数 /data/user/0/com.embarcadero。视频播放器测试/文件

将资源文件复制到'应用程序的内部存储'它允许通过绝对文件路径访问该文件,因为资产文件最初只能通过'资产管理器'本地类。

另一个好处是可以绕过原始资产文件的压缩。注意,一些本机API旨在操作非应用程序特定的文件,因此可能会错误地报告来自'应用程序的内部存储'无法访问或不存在。

为Google Glass创建应用程序

这个表单设计器提供了谷歌眼镜 看法,使您能够为Google Glass创建应用程序:

谷歌眼镜设计时间设备.png

如果您正在为谷歌眼镜创建应用程序,请使用RAD Studio提供的自定义谷歌眼镜样式:

C: \Users\Public\Documents\Embarcadero\Studio\23.0\Styles\Android\GoogleGlass.fsf

谷歌眼镜风格针对谷歌眼镜的用户界面和分辨率进行了优化。

有关在FireMonkey应用程序中使用Google Glass样式的步骤,请参阅向移动应用程序添加自定义样式.

有关使用RAD Studio为Google Glass开发应用程序的一般信息,请参阅谷歌眼镜的第一步.

为Android智能手表创建应用程序

这个表单设计器提供了两种不同的意见对于Android智能手表:索尼SmartWatch 3摩托罗拉Moto 360这两个视图都涵盖了Android智能手表的典型形状。因此,您可以根据应用程序运行的智能手表定义最合适的设计。您还可以为其他设备创建自己的自定义视图,包括其他Android智能手表。

智能手表设计时间设备.png

这个多设备预览该窗口提供了一个设计时视图,显示您的应用程序在四个不同的Android智能手表上的外观,以及各种其他设备上的外观。

SmartWatchesMultiDevicePreview.png智能手表多设备预览.png

如果您正在为Android智能手表创建应用程序,RAD Studio提供Android Wear风格,该风格针对Android智能手表的用户界面和不同分辨率进行了优化。

Android Wear款式可在C: \Users\Public\Documents\Embarcadero\Studio\23.0\Styles\Android\Androidwear.fsf.

有关使用RAD Studio为Android智能手表开发应用程序的一般信息,请参阅使用RAD Studio创建Android Smart Watch应用程序.

实现Android特定功能

以下主题描述了如何在应用程序中实现一些特定于Android的功能:

在中查找有关其他与平台无关的功能的文档FireMonkey应用指南.

另请参见

样品