AIDE—在 Android 上开发 Android
Android 作为一个平台,是地球上发展最快的平台之一。它可以在智能手机和一系列不同尺寸的平板电脑上使用。大多数设备还包括全方位的传感器,这些传感器可供您安装的程序使用,因此它是一个非常有吸引力的开发平台。通常的工作流程包括在其他机器上安装开发环境,无论是 Windows 还是 Linux 桌面或笔记本电脑。然后,您在那里完成所有的代码编写、编译和调试,然后再实际复制它并将其安装到您的 Android 设备上。
但是,有时您可能希望在旅途中进行开发,或者通过在 Android 设备本身上进行开发来缩短周期。 AIDE(Android Java IDE)是更好的选择之一。 AIDE 以免费增值模式分发。免费版本允许您开发、编译和运行代码。它还允许您安装到运行 AIDE 的设备上。但是,如果您想生成可用于安装到其他设备上的 APK 文件,则需要购买完整版本。
在本文中,我首先解释如何安装 AIDE 并创建一个新程序,然后我介绍编码、调试和运行新程序所涉及的内容。有关更多信息,请参阅 Google+ 页面。

图 1. AIDE 可从 Google Play 商店免费下载。
第一步是在您的 Android 设备上安装 AIDE。打开 Play 商店并搜索“AIDE”。相应的软件包应显示在列表顶部。如果您有疑问,请验证开发者是否为“appfour GmbH”。 AIDE 占用超过 12MB 的空间,因此如果您的空间不足,您可以将其大部分传输到 SD 卡,在设备的主存储器中留下 4.45MB。
首次启动 AIDE 时,它会弹出一个对话框,您可以在其中输入开始项目的详细信息。在此对话框中,您可以输入应用名称和软件包名称。您还可以从一些内置模板中选择应用模板,例如“Hello World”、“Tetris”和“Analog Clock Widget”。这些模板将为您的新项目设置文件夹和文件。

图 2. 首次启动 AIDE 时,您将看到一个用于您的第一个项目的对话框。
单击“创建”后,文件将在文件夹 /mnt/sdcard/appname(其中 appname 是您为项目命名的名称)中创建,并且这个新项目将在 IDE 中打开。 IDE 的主要部分由两个窗格组成。它们的对齐方式取决于您运行它的设备的大小。在我的手机上,窗格上下排列,而在我的平板电脑上,窗格并排排列。第一个窗格是项目的文件列表,其中包含 Android 项目所需的所有属性、资源和源文件。第二个窗格是主编辑器,其中中心文件 (MainActivity.java) 在项目创建时加载。

图 3. 当您打开一个项目时,它会被拉入 IDE 中。

图 4. 平板电脑界面打开时窗格并排排列。
如果您从模板之一开始,您可以立即编译并运行它,以了解流程是如何工作的。单击菜单按钮,然后选择“运行”选项。这将弹出一个对话框,告知您正在执行的每个步骤。它将编译您的代码,链接它并创建一个 APK 文件。为了运行它,需要安装此 APK 文件。因此,将出现一个安装对话框,询问您是否要安装它。安装完成后,它将启动,您将拥有您的第一个 Android 应用程序,完全在 Android 上开发。

图 5. 安全性要求您批准任何正在安装的应用。

图 6. 编译和安装后,AIDE 将运行您的新程序。
您在 AIDE 中开发的所有应用都以项目形式构建。任何习惯使用 IDE(如 Eclipse)的人都应该熟悉这一点。这意味着如果您想处理不同的应用程序,您需要关闭当前项目并打开一个新项目。要关闭项目,请单击菜单按钮,选择“更多”,然后选择“关闭项目”。这仍然会将您留在当前项目的主目录中。
要查看您的其他项目,请单击文件窗格中的“..”条目以向上移动一个目录。在这里,您应该看到三个标准条目,然后是每个项目的文件夹。第一个条目是一个工具,可让您将 Git 存储库克隆到您的 Android 设备。弹出的对话框允许您输入存储库 URL 和目录名称。如果您已经完成了一些开发工作并将代码放在 Dropbox 上,则可以直接在 AIDE 中下载相关文件夹。

图 7. 您可以通过几种不同的方式创建新项目。

图 8. 克隆 Git 存储库是一项相当容易的任务。
第三个选项是创建一个新项目。选择此选项会弹出您首次启动 AIDE 时看到的对话框。要将项目加载到 IDE 中,仅选择项目文件夹是不够的。在文件夹中,有一个选项“打开此应用项目”。这将加载有关您的项目的所有元信息,例如其属性和资源文件位置。
既然您已经了解了一些关于如何处理项目的信息,那么让我们开始创建您的第一个应用程序。如果您现在打开了一个项目,请继续关闭它。在文件窗格中更改目录,直到您位于所有项目的主目录中。从这里,您可以选择“在此处创建新应用项目”,并将您的项目命名为“MyFirstApp”。您可以将包名称设置为您喜欢的任何名称,只要它遵循常用格式即可。此外,请确保您已选择“Hello World”应用模板。
填写完所有内容后,继续单击“创建”按钮。这将创建所有必需的文件并在 IDE 中打开新项目。文件 MainActivity.java 扩展了类“Activity”。这是您在开发应用程序时将要处理的主类。您的应用程序构建在此类之上,并覆盖其中的方法以使您的应用程序执行自己的操作。
要覆盖的第一个方法是“onCreate”。此方法在首次创建您的 Activity 时调用。通常的任务包括创建程序的图形元素并使其最初呈现和显示。“onCreate”的第一步(super.onCreate)运行主类“Activity”中的代码,以处理创建新 Activity 中的所有操作系统相关任务。然后,您添加自己的代码,通常是 GUI 创建。
在 Hello World 模板中,它包含对“setContentView”方法的调用,该方法将特定布局指定为内容视图。起始值是布局“R.layout.main”。布局是 XML 文件,其中包含构成图形界面的所有元素。要访问此文件,您可以更改到目录 res,然后是 layout。在此子目录中,您将找到为每个定义的布局的 XML 文件。

图 9. 布局文件存储在子目录 res/layout 中。
在这个简单的程序中,您只有一个名为 main.xml 的文件。在文件窗格中选择它会将其加载到编辑器窗格中。 XML 文件中最外层的容器是要定义的布局类型。有许多选项可用。在 Hello World 模板中,使用的布局类型是 LinearLayout。您可以使用属性 android:layout_width 和 android:layout_height 设置整个布局的宽度和高度。在本例中,让我们将两者都保留为默认值“fill_parent”。您还可以设置显示方向;在本例中,它是垂直的。
图形显示的各个元素定义为最外层 Layout 容器内的内部 XML 容器。在本例中,有一个“TextView”对象,您可以在其中设置各种属性,如宽度、高度或要显示的文本。包含文本字符串或任何其他可能重用的内容的正确方法是将它们一次存储为资源,并使用资源标识符引用此字符串。在本例中,标识符为“@string/hello”。实际的文本字符串存储在文件 strings.xml 中,该文件位于目录 res/values 中。此 XML 文件最外层的容器是标签“resources”。其中是您的程序可用的所有资源的列表。在本例中,只有两个字符串:一个用于应用程序名称,另一个用于主窗口的文本内容。

图 10. 程序的资源存储在一系列 XML 文件中。
对于本示例,让我们添加一个按钮来更改显示的文本。如果您需要进行任何数量的键入,您将需要下载并安装更完整的软键盘或使用外部蓝牙键盘。一个好的软键盘是黑客键盘。它包含许多在代码编辑中有用的额外键,包括用于辅助导航的箭头键和真正的 Control、Tab 和 Escape 键。大多数 Android 设备上包含的软键盘都缺少这些。
打开主布局文件,并在 TextView 下方,为 Button 条目添加一个新标签,代码如下
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button_title" />
AIDE 实际上会持续进行代码检查,以确保代码中没有任何错误。这意味着在您键入上述添加内容时,您可能会看到错误,直到您最终完成。
编辑器包括制表符补全功能,因此您可以开始键入“<Butt”,然后按 Tab 键,编辑器将为您填写单词的其余部分。这是因为“Button”实际上是 Android 开发中的一个特殊词。
添加上述内容后,您可以单击菜单按钮,选择“更多”,然后选择“刷新构建”。这将尝试对您的应用进行完整重建,您将看到有关缺少字符串资源的错误。如果您有多个错误,单击列表中的错误会将您带到错误出现的位置。要修复此特定错误,您需要在文件 res/values/strings.xml 中添加以下文本
<string name="button_title">My Button

图 11. 重建期间出现的任何错误都会在此处列出。
当您到达此行的末尾并开始键入“</”时,编辑器将自动为您填写该行的其余部分。当您刷新构建时,错误应该会消失,前提是您没有引入任何错别字。

图 12. 您可以将新的字符串资源添加到文件 strings.xml 中。
但是,按钮应该会触发一些反应。这意味着您可能希望为按钮中的函数添加某种回调。这在定义按钮的布局文件中处理。您可以添加一个额外的属性“onClick”,它提供一个在单击按钮时调用的方法名称。例如,您可能在按钮定义中具有以下内容
android:onClick="my_method"
然后,您可以将函数“my_method”添加到文件 MainActivity.java 中。这个新方法需要是 public 并且返回 void。此外,唯一的输入参数是 View 对象。因为您要更改 TextView 对象中的文本,所以您需要添加一个 ID 以便您可以引用它。在 main.xml 文件中,将以下属性添加到 TextView 条目
android:id="@+id/view_text"

图 13. 在 main.xml 文件中为按钮添加回调。
然后,您可以使用“view_text”访问文本显示。在方法“my_method”中,您可以使用以下行获取对此文本字段的引用
TextView tview = (TextView)findViewById(R.id.view_text);

图 14. 您需要添加 ID 标签才能与程序中的项目进行交互。
然后,您可以使用以下命令将文本重置为“按钮被点击了”
tview.setText("The button was clicked");
当您单击“运行”时,您的程序将被重新编译、重新安装和打开。现在您可以看看单击添加的按钮时会发生什么。

图 15. 实际的回调代码进入 MainActivity.java。

图 16. 按下按钮之前。

图 17. 按下按钮之后。

图 18. 菜单中有很多此处未涵盖的功能。

图 19. 高级版本增加了更多功能。
我在这里仅对 AIDE 及其所有超能力进行了简短介绍。本文未深入探讨 Android 应用程序的最基本功能之外的内容。存在许多教程可以帮助您快速掌握 Android 开发,现在您可以随时随地完成这些教程。