欢迎使用PCPC.me创建自己的Android应用的指南。在本指南中,我们将介绍为什么要创建自己的Android应用程序,构建该应用程序的一些选项以及如何将其提供给其他人。
简介Android开发
开发Android应用有两种主要方法。首先是从头开始编写它,很可能是用Java编写的。但这当然是假设您已经了解 Java或有足够的耐心在开始学习之前学习它。但是,如果您渴望立即开始学习该怎么办?
另一种选择是市场上的点击应用构建器之一。其中许多目标企业用户(并带有企业价格标签)。但是MIT提供了其“ App Inventor",这是一个在线工具,可让您直观地构建应用程序。您可以使用App Inventor完成一些整洁的事情,直到您可以深入研究Java并访问Android平台的所有强大功能为止。
在以下各节中,我们将构建一个原型。简单的“ scratchpad"应用程序的版本,它将存储您在其中输入的文本。我们将首先在App Inventor中执行此操作,然后在Android模拟器中预览结果。然后,我们将扩展该应用程序的功能,使其能够从多个文件中进行选择,使其更像一个“记事本"。对于这种类型的改进,我们需要深入研究Java和Android Studio。
准备好了吗?让我们开始吧。
您想创建自己的Android应用的原因有很多,包括:
无论出于何种原因,应用开发都会挑战您的设计,技术和逻辑技能。这个练习的结果(一个适用于Android的有效且有用的应用程序)取得了巨大的成就,可以作为投资组合。
创建应用程序的途径很多,包括不同的工具包,编程语言。从高层次上讲,它们可分为以下两类。
如果您是开发的完整新手,则可以使用一些环境来构建Android应用程序,就像创建Powerpoint演示文稿一样。 。您可以选择诸如按钮或文本框之类的控件,将它们放到屏幕上(如下图所示),并提供一些有关其行为方式的参数。都无需编写任何代码。
这些类型的应用程序具有学习曲线浅的优点。通常,您可以直接进入并至少开始布局屏幕。由于它们旨在处理后台的技术细节(例如对象类型或错误处理),因此它们也使应用程序摆脱了很多复杂性。另一方面,这种简单性意味着您受工具创建者的支配,无法支持哪些功能。此外,许多这类工具都是针对大型公司的,而且价格昂贵。
麻省理工学院的App Inventor网络应用程序是一个例外,该应用程序功能齐全且免费。使用Google帐户登录后,您可以在几分钟内一起单击某个应用程序,然后在手机上或通过Android模拟器对其进行预览。
另一种选择是从头开始编写应用程序。这可能与您的想象不同-它不像电影所描绘的那样。
它一次在源文件中一行输入代码,然后将它们编译成可执行应用程序。尽管听起来可能很无聊,但实际上,您在编程上花费的时间更多是花在了设计上,或者思考着事情应该如何工作。询问大多数开发人员,他们会说他们只花10-15%的时间在代码输入上。因此,您将大部分时间(有效率地)花在做白日梦上。
您可以用几种不同的方式对Android应用程序进行编码),以分发为看起来像“本机"的移动应用程序。
集成开发环境(IDE)时,除了Android应用程序外,您还可以为台式机和服务器端应用程序(包括基于Web的应用程序)进行开发。
因此,哪种方法是“最佳?"这对于每个人来说都太主观了,但是我们可以概括如下。如果您好奇,但只是“玩转",请坚持点击应用程序的创建者。他们可以帮助您消除创意上的困扰,而无需任何“课程"。但是,如果该课程的想法没有使您感到恐惧,请考虑走更长的路,学习编程语言。投资将通过许多其他方式获得回报。
此外,考虑同时使用两者!点击生成器是快速组合原型或“概念验证"的一种极好方法。使用它们可以处理一些细节(例如布局和屏幕流),因为它们很多在鼠标驱动的环境中更快地随机播放。然后,如果需要,可以利用Java重新实现它们的灵活性。
在本指南中,我们将采用这种方法。我们将:
好的,足够多的谈话。在下一节中,我们将准备好进行编码。
暂时不要马上潜水-首先,您需要一些知识和一些软件。
在我们开始安装一些软件之前软件,在开始之前,您应该具备一些知识。首先,是“它应该做什么?" 。在开始开发之前,等到您对应用程序有了清晰的概念似乎是理所当然的-但您会感到惊讶。因此,花一些时间来解决这个概念,甚至记下一些有关行为的注释并草绘一些屏幕。首先,对应用程序有一个相对完整的了解。
接下来,查看可能的事。例如,想象一下您应用程序的理想图片是可以让您视频记录您的视频的东西。一生为后代。您可以创建一个可以捕获视频的应用。您无法创建一个将一生中的每一刻都存储在设备上的存储设备(存储空间不足)。但是,您可以尝试将其中的某些存储卸载到云中,尽管开发需要花费时间,并且有其自身的局限性(当您无法访问网络时会发生什么?)。在这里,您将检查一些技术细节,并可以告知决策,例如是否从头开始编写代码。
最后,值得一提的是已经存在的内容 。如果您只是想学习社区或为社区做贡献,是否有像您这样的现有开源项目?您能以那个项目为起点吗?甚至更好,开发您的增强功能并做出贡献?如果您想赚钱,您的竞争是什么样的?如果您编写了一个简单的闹钟应用程序并希望从中赚取一百万美元,则最好在桌上摆一些特别的东西。
如前所述,我们将构建一个简单的便签本,该便签本可以收集并保留一些您输入的文字。为此,我们将打破上述规则,因为已经有很多Android笔记应用程序都已打开。但是,让我们假设这将在以后变得更加复杂。您必须从某个地方开始。
现在我们将获得所需的一些软件。
您无需安装任何东西即可使用App Inventor工具。这是一个网络应用程序,您可以完全通过浏览器访问它。当您访问该网站时,您会在右上角看到一个用于创建应用程序的按钮!如果您当前尚未登录Google帐户,则点击该按钮会将您定向到日志-p页面。
否则,您应该直接转到App Inventor的我的项目页面。
此时,请考虑在哪里进行测试您的应用。如果您喜欢冒险,可以通过在Play商店中安装Companion应用在手机或平板电脑上进行测试。然后,您现在就准备就绪了-您需要一个正在运行的项目才能实际在设备上看到任何内容,但是稍后我们将进行介绍。
或者,您可以使用模拟器来测试您的设备您计算机上的应用程序。从此页面下载并安装适用于您的操作系统的仿真器。下图显示了在Linux上安装的应用程序,但在Windows或Mac上也应安装适当的版本。
您可以通过运行“ aiStarter"命令来启动模拟器。这将启动一个后台进程,该进程将您的(本地)仿真器连接到(基于云的)App Inventor。 Windows系统将为其提供快捷方式,而Mac用户登录时将自动启动它。 Linux用户将需要在终端上运行以下命令:
/usr/google/appinventor/commands-for-appinventor/aiStarter &
一旦运行,您可以通过单击连接中的仿真器项来测试连接。强大>菜单。如果您看到模拟器旋转起来(如下图所示),那就很好了。
如果您打算开发一些简单的程序,App Inventor可能就是您要做的一切永远需要。但是在玩了一段时间之后,您可能会碰壁,或者您可能会知道您将使用App Inventor不支持的某些功能(例如应用内结算)。为此,您需要安装Android Studio。
现在,Google批准了官方开发环境,Android Studio是JetBrains的IntelliJ IDEA Java IDE的一个版本。您可以从此处的Google Android开发者页面下载适用于您操作系统的副本。 Windows和Mac用户可以分别使用EXE文件或DMG映像启动安装程序。
Linux用户可以使用ZIP文件,将其解压缩到任何位置,然后从那里运行Android Studio(Windows / Mac用户)也可以这样做)。否则,您可以使用 Ubuntu Make 为您下载并安装该软件包。如果您使用的是最新LTS版本(截至撰写本文时为16.04),则需要将Ubuntu Make PPA添加到系统中才能访问Android Studio:
sudo add-apt-repository ppa:ubuntu-desktop/ubuntu-make
然后更新系统
sudo apt update
最后,使用以下命令安装Ubuntu Make:
sudo apt install umake
一旦安装,您可以使用以下命令直接指导Ubuntu Make为您安装Android Studio:
umake android android-studio
显示许可协议后,它将开始下载并安装基本应用程序。完成安装并启动Android Studio后,向导将引导您完成其他几个步骤。
首先,您可以选择是否要“标准"安装或自定义设置。在此处选择“标准"安装,它将使您更快上手。
然后,您会收到一条消息,提示您需要下载一些其他组件,这可能会花费一些时间。
安装完所有内容后,您会看到一个小的启动屏幕,让您可以创建新项目,打开现有项目或访问设置。
我知道您已经准备好弄脏你的手。事不宜迟,让我们来构建一些东西。
因为(当然)在进入之前我们一直在想着这个过程,所以我们知道我们的Android应用将由两个屏幕组成。
一种将允许用户“立即编辑"或退出,而另一种将进行实际的编辑。第一个屏幕看似无用,但稍后在我们添加功能时可能会派上用场。由于纯文本规则,“编辑"屏幕上捕获的文本将保存在纯文本文件中。以下线框为我们提供了很好的参考(只需花5分钟即可完成):
在下一部分中,我们将使用MIT的App Inventor构建它。
第一步是创建一个新项目。登录到App Inventor,然后单击左侧的开始新项目按钮(也可在 Projects 菜单中找到)。
您将获得
但是现在您已进入App Inventor的Designer视图,并且可以使用很多内容。让我们花点时间看一下每个部分。
在继续之前,让我们在Designer中将“主"屏幕的布局放在一起。查看草图,我们将为应用程序名称添加标签,一行帮助文本,一个移至“编辑"屏幕的按钮以及一个退出按钮。您可以看到用户界面面板包含我们需要的所有项目:两个标签和两个按钮。将它们拖到屏幕顶部的垂直列中。
Next we’ll configure each one. For the labels, you can set elements like what the text should be, the background color, and alignment. We’ll center both of our labels but set the background of the app name to black with white text.
现在该看看它在设备上的实际外观了。在构建事物时,请循序渐进。 我对此不够强调。
Don’t build a big list of things into your app in one go, because if something breaks, it takes a long time to figure out why. If you’re looking to test on a real phone, you can start up your AI2 Companion app and connect to App Inventor with either the QR code or the six-character code provided.
要使用仿真器进行预览,请确保已启动上述aiStarter程序,然后选择仿真器连接菜单中再次点击strong>项。无论哪种方式,在短暂的停顿后,您都应该看到应用程序启动,看起来像查看器中的外观(实际布局可能取决于设备和仿真器的尺寸)。
自标题看起来不错,让我们也更改其他文本并使其居中对齐(这是屏幕的属性, AlignHorizontal ,而不是文本/按钮)。现在,您可以看到App Inventor真正酷的方面之一-您所做的所有更改都是实时完成的!您可以看到文本更改,按钮调整对齐方式等等。
现在,布局完成了,我们添加一些功能。点击左上方的阻止按钮。您会看到与“设计器"视图类似的布局,但是会在类别中进行一些不同的选择。这些是编程概念,而不是界面控件,但是像其他视图一样,您将使用拖放操作将它们放在一起作为应用程序的一部分。
左侧选板包含如下类别“内置"类别中的控件,文本和变量。此类别中的块表示将在后台大量使用的功能,例如可以执行计算的 Math 项目。这下方是屏幕中元素的列表,此处可用的块将影响这些元素。例如,单击我们的标签之一显示的块可以更改该标签的文本,而按钮包含的块可以定义单击它们时发生的情况。
除了它们的类别(用颜色表示)之外,每个块还具有代表其用途的形状。这些大致可分为以下几类:
您当然可以阅读App Inventor上的所有指南和教程。但是,它的目的是让您开始单击即可(从字面上看)合适的内容。在我们的初始页面上,我们有两个需要注意的项目(“按钮"),所以让我们看一下我们能想到的。单击其中之一(Button2)将关闭应用程序。由于这是与按钮的交互。我们可以检查按钮块,并找到一个以 Button2.click (或单击Button 1时)开头的块。这正是我们想要的,因此我们将其拖到查看器上。
现在,当单击它时,我们希望该应用程序关闭,这听起来像一个整体应用程序流程功能。看看内置>控制部分,我们确实看到了关闭应用程序块。并将其拖动到第一个程序段的间隙中,它单击到位。成功!
现在,当您单击按钮时,该应用程序将关闭。让我们在模拟器中尝试一下。它向我们显示了一个错误,指出在开发环境中不支持关闭该应用程序,但是看到它意味着它可以正常工作!
现在让我们将注意力转向Button1。
这是应该打开我们的编辑器,所以我们最好确保该编辑器存在!让我们切换回Designer并创建一个具有与第一个屏幕相同的Label的新屏幕,一个 TextBox (对于 Width设置为“ fill parent",对于设置是50% strong>高度,并启用了多行)来保存我们的内容,以及另一个按钮(标记为“ <<保存")。现在,请检查模拟器中的布局!
。在继续之前,我们知道我们想隐藏文本框中的内容,听起来像 Storage 。果然有两个选项。
其中,文件是最简单的选项,并且由于我们需要纯文本,因此会很好。将其放在查看器中时,您会发现它没有出现。 文件是一个不可见组件,因为它在后台工作以将内容保存到设备上的文件中。帮助文本可让您了解其工作原理,但是如果希望这些项目可见,只需选中在查看器中显示隐藏的组件复选框。
立即切换到“块"视图—现在该编程了。我们唯一需要做的就是单击“ <<保存"按钮,因此我们将在 Button1.click 阻止时抓取。这是App Inventor真正开始发挥作用的地方。
首先,我们将通过抓取 call File1.saveFile 块并为其提供所需的文本来保存TextBox的内容。 (使用TextBox1的 TextBox1.text 来检索其内容)和一个文件来存储它(只需提供带有文本块的路径和文件名,如果没有,该应用程序将为您创建文件)
我们还设置了屏幕以在文件打开时加载该文件的内容( Editor>,在Editor.initialize 块中)。它应该调用File1.ReadFrom ,它指向我们的文件名。当File1.GotText 时,我们可以使用 File>捕获读取文本文件的结果,使用 TextBox>将TextBox.Text设置为将该内容分配给TextBox,然后将其获取文字值。最后,保存后,我们希望单击Button1将其发送回主屏幕(关闭屏幕块)。
最后一步是返回主屏幕屏幕并编程第一个按钮。我们希望它将我们发送到“编辑器"屏幕,这很简单,控制>打开另一个屏幕块,指定“编辑器"。
现在,您已经有一些有用的东西,接下来会发生什么?当然要增强它! App Inventor使您可以访问各种Android功能。除了我们刚刚创建的简单屏幕之外,您还可以向应用程序添加功能,包括媒体播放,发送文本甚至实时网络视图。
首先想到的一项改进是选择功能。从多个文件中。但是快速的互联网搜索表明,这需要在App Inventor中使用一些顶级黑客工具。如果需要此功能,则需要深入研究Java和Android Studio环境。
以下各节将以非常高的层次描述Java暂存器应用程序的开发。值得再次重复:虽然它可以带来巨大的收益,但是学习Java和Android Studio需要花费大量的时间。
因此,对于什么代码没有太多的解释。意思,也不必为此担心。讲授Java超出了本文的范围。 将要做的是检查Java代码与我们已经在App Inventor中构建的内容有多接近。
首先启动Android Studio,然后选择启动新的Android Studio项目项目。您将通过向导向导询问一些事项。第一个屏幕要求输入应用程序的名称,域(如果您提交到应用程序商店,这很重要,但是如果您只是为自己开发,则不重要),以及项目的目录。
在下一个屏幕上,您将设置要定位的Android版本。选择较新的版本可让您包括平台的较新功能,但可能会排除某些设备不是最新的用户。这是一个简单的应用程序,因此我们可以继续使用Ice Cream Sandwich。
下一步,我们将为应用程序选择默认的活动。活动是Android开发中的核心概念,但出于我们的目的,我们可以将其定义为屏幕。您可以从Android Studio中选择一个数字,但我们只需要从一个空白开始并自行构建即可。之后的屏幕将为您命名。
新项目启动后,请花一点时间来熟悉Android Studio。
我们将以Java重新构建暂存器开始。回顾我们以前的应用程序,我们可以看到在第一个屏幕上,我们需要一个标签和两个按钮。
几年前,在Android上创建用户界面是一个涉及手工XML的艰苦过程。如今,您可以像在App Inventor中一样以图形方式进行操作。我们的每个活动都将具有一个布局文件(以XML完成)和一个代码文件(JAVA)。
单击“ main_activity.xml"选项卡,您将看到以下内容(非常设计师-类似)屏幕。我们可以使用它来拖放控件:一个 TextView (如标签)和两个按钮。
让我们连接退出按钮。与App Inventor可以为我们处理簿记的应用程序不同,我们需要以代码和图形方式创建一个Button。
但是像 AI一样,Android的Java API使用“当用户单击按钮时,它会做出反应,就像我们的老朋友“ when Button1.click"块一样。我们将使用“ finish()"方法,以便当用户单击时,应用程序将退出(请记住,完成后在模拟器中尝试)。
现在,我们可以关闭该应用程序,我们将重新跟踪我们的步骤。在连接“编辑"按钮之前,让我们进行“编辑器活动"(屏幕)。右键单击项目窗格,然后选择新建>活动>空活动,并将其命名为“ EditorActivity"以创建新屏幕。
然后我们使用 EditTextBox (将在其中放置文本)和一个Button创建编辑器的布局。调整每个属性的属性。
现在切换到EditorActivity.java文件。我们将编写一些与App Inventor中相似的功能。
一个将创建一个文件来存储文本(如果不存在),或者读取其内容。几行代码将创建 EditTextBox 并将文本加载到其中。最后,更多的代码将创建Button及其onClickListener(它将文本保存到文件中,然后关闭Activity)。
现在,当我们在模拟器中运行它时,我们将看到以下内容:
现在,我们有了原始App Inventor暂存器的工作版本。但是我们将其移植到Java以增强它。让我们包括从该标准目录中的多个文件中进行选择的功能。完成此操作后,我们将真正使它更多地是记事本,而不仅仅是便笺本,因此,我们将按照此处的说明创建当前项目的副本。
我们使用了一个Android Intent从主菜单中调用我们的Editor Activity,但它们也是调用其他应用程序的便捷方法。通过添加几行代码,我们的Intent将发送一个文件管理器应用程序响应的请求。这意味着我们可以删除检查创建文件的大部分代码,因为Intent仅允许我们浏览/选择一个实际存在的文件。最后,我们的“编辑器活动"保持不变。
标签: