9.\单击Finish按钮后,AndroidStudio将开始为应用程序构建Gradle文件,如图3-6所示(编号为2)。Gradle是一个开源的构建工具T在安卓5.0中被采用,它管理你的安卓应用程序的编译(构建)。在Android 5之前,Eclipse使用了ApacheAnt和ApacheMaven构建工具。因为这是个阿拉伯人我们不会深入探究Gradle构建工具和配置的复杂性,而只是利用它们来创建您的Android应用程序。
10.\如果您的Windows防火墙在某个时候使用Windows Alert对话框阻止OpenJDK平台二进制文件,如图3-6右中所示,请单击“允许访问”按钮(Numbe)允许OpenJDK平台二进制代码与您自己的专用网络进行通信。如果你知道公共网络是安全的,你也可以选择它们。在你做完这件事之后,Gradle构建工具将继续创建Android 7应用程序构建文件,进度条对话框将准确地告诉您正在为您生成哪些文件。我们来看看稍后的E文件,所以你知道在你的项目中是什么,它们在哪里。
图3-6.。使用MainActivity名称和ActivityMain用户界面布局名称自定义活动,然后单击完成
11.\一旦这个Gradle构建过程完成,AndroidStudio将启动。您将在标题栏中看到MyApplication项目名称,以及项目文件的位置和AndroidStudio版本,如图3-7左上角所示。在我的例子中,项目文件位于C:\user文件夹下
...
12.\在屏幕中央出现的“每日提示”对话框中(我移动它以显示它在处女发射中的背后是什么),看一看一些或所有提示,然后使用“关闭”按钮关闭AndroidStudio 2.3的教育功能。如果您想稍后使用此功能,可以在“启动时显示提示”检查中,我将建议您使用该功能。做一个绝对的初学者,直到你熟悉Android Studio。
在图3-7中,我将第一步编号为1。
13.\关闭“每日提示”对话框后,AndroidStudio将打开一个弹出对话框,如图3-7所示,该对话框将询问您是否希望与Google共享使用统计信息,以便它们能够对AndroidStudio 2.3进行用户界面和用户体验改进。如果这是您可以接受的,请单击“我同意”链接,如果不能,则单击
我不同意联系。
14.\Android Studio和Gradle Build系统将继续构建和索引项目,如图3-7中右下角所示,使用进度条和文本更新来说明正在做什么。
图3-7.。关闭“每日提示”对话框,同意(或不同意)帮助改进AndroidStudio,完成项目索引
15.\还请注意,在AndroidStudio屏幕的中央有一些快捷方式可以用来加速Android 7应用程序的开发(这就是为什么我移动了d天的提示dialog会话,对话
别挡道)。在列表的底部,请注意“将文件放在这里打开”,这让您知道可以将现有的AndroidStudio文件拖到AndroidStudio 2.3中来打开它们。您也可以使用双轮班搜索各地,Alt 1得到一个项目视图,Ctrl移位N到一个文件,Ctrl E打开最近的文件,和Alt主页访问导航栏。
一旦您的新项目构建完成了构建、索引、生成Java代码和xml标记,以及创建Android应用程序所需的所有其他步骤,那么Android Stud中的空白屏幕就会出现。Io将被项目导航和开发窗格所取代,我们将在书的其余部分使用这些窗格来开发(并学习)Android应用程序。
这些不同的窗格使您可以导航项目结构,编辑Java代码和XML标记结构,以及使用Groovypr的Gradle构建文件等更复杂的文件。语法语言。下面让我们来看看AndroidStudio 2.3,看看我们可以了解Android应用程序,以及它们需要如何组合在一起,以便将(构建)编译成一个可用的Android包(.APK)文件,您可以在Google的Play Store中使用该文件来发布申请.
探索你的Android Studio项目:Android应用程序
结构
一旦AndroidStudio打开,就使用右箭头打开主应用程序文件夹,这样您就可以在图3-8中看到屏幕左侧的部分了。右箭头被调用。展开箭头,它变成向下的箭头,称为折叠箭头.。这些箭头指向打开或关闭的文件夹目录,一旦你熟悉了它们,你就会看到它们。尽你所能ee,Android有一个顶级的app文件夹,其中包含三个主要的子文件夹:清单、java和res(参考资料),Java和RES子文件夹也有子文件夹。
图3-8.。打开AndroidProject窗格文件夹层次结构,查看用于Android开发的文件夹
您的应用程序Java代码位于app\java\com.example.user.myapplication文件夹中,该文件夹从ApplicationName和Company域字段中获取其名称,如图3-2所示。里面文件夹是Java代码文件MainActivity.java,当编译成Java字节码时,它将在构建后成为MainActivity.class。
另一方面,您的应用程序资源(我喜欢将这些称为应用程序的“资产”)包含在app\res\draable(图像和插图)、app\res\布局(用户界面设计)中,app\res\mipmap(app图标),app\res\value文件夹及其子文件夹,其中包含应用程序的XML定义和常量值。
我们将在第5章中讨论AndroidStudio中央编辑窗格中MainActivity.java选项卡中的Java代码,因此在本章中,我们将重点介绍Androidpro的内容。弹出管理窗格,并了解构成Android项目结构的所有组件。当我们在本章中这样做时,我们将查看各个子文件夹和什么comp。我们的Android应用程序的用户需要存储在某些子文件夹中。要成为Android开发人员,你需要做的一件事就是学习如何组织Android项目。是r遗憾的是,在我们生活的更多领域中没有“强制组织”,因为正如您很快会看到的那样,android的组织方式迫使您的应用程序开发工作流程。不要做精确的手术!
让我们快速查看Activitymain.xml选项卡,如图3-9所示。您将在第4章中学习xml,但我想确保您知道如何单击在AndroidStudio编辑部分的选项卡上,这样您就可以轻松地在编辑应用程序的XML标记和Java代码之间来回切换。
图3-9.。选择Activitymain.xml编辑选项卡(顶部)和Text选项卡(底部),并使用Preview窗格查看应用程序
如您所见,Java文件位于/app/java文件夹层次结构中,其余文件夹包含XML文件和(或)新媒体资产。有大量不同类型的资源文件夹。s,它以特定的名称开始,例如可绘制(图像、动画或形状资产)、布局(UI设计XML定义资产)、mipmap(应用程序图标图像)和值(定义Colo的值常量)。RS、维度、样式和文本字符串)。
您还可以将其他类型的android应用程序项目资产文件夹添加到此项目文件夹层次结构中,在本书的过程中,当我们添加高级资产(如digi)时,我们将这样做。视频和动画。由于这些文件夹还需要特定的名称,这些名称指示资产的类型以及它们的功能,所以我将概述什么是android资产文件夹类型(指示为b)。y它们的文件夹名称和命名约定是。我会给他们提供表3-1中的表格格式,这样您就可以全面了解Android的项目文件夹层次结构了。
表3-1。Android项目目录(文件夹)层次结构,显示您在本书期间将使用的关键子文件夹
Android Project | Type of application assets that this subfolder must contain |
Subfolder Name |
|
|
|
/manifest | Android Manifest XML files (your application permissions and |
| specifications) |
/java | Java source code files (your Java programming language application logic) |
/res | Project resources (your new media assets, UI, menus, and XML markup |
| definitions) |
/res/drawable | Digital imaging and digital illustration assets (these are called “drawables” |
| in Android) |
/res/layout | UI design layout XML definitions (UI elements are “Views” or “ViewGroups” |
| in Android) |
/res/mipmap | Application icons (resolution/density-specific [DPI] PNG32 digital image |
| graphics assets) |
/res/menu | Application menu item XML definitions (we will be creating these from |
| scratch later on) |
/res/anim | 2D image/illustration animation (procedural, frame, or tween animation XML |
| definition) |
/res/animator | Android widget (UI elements) property animation (also XML definitions) |
/res/xml | Custom XML definitions (other than UI, menu, style, theme, animation, |
| constants, etc.) |
/res/raw | Digital video or digital audio assets (which have already been data footprint |
| optimized) |
/res/values | Data values that remain fixed for the application duration (these are called |
| constants) |
/res/values/colors | Application color value constants |
/res/values/dimens | Application dimension (width and height) constants |
/res/values/strings | Application text string (labels, titles, messages, fixed text phrases) |
| constants |
/res/values/styles | Application styles and themes |
/res/values/bool | Application Boolean (true or false data value) constants |
/res/values/array | Application data array (lists or collections of data values) constants |
/res/values/integer | Application integer constants |
|
|
让我们在本章的其余部分查看资源文件夹的类型及其包含的内容,因为这将向您展示Android应用程序可以包含哪些内容,您需要将其放置在设置它们,以便正确地使用它们,并向您展示您需要注意的功能和设计因素,以便使Android应用程序能够在不同的Android硬件设备类型上使用v。不同的尺寸、形状、方向和分辨率。
Android资源:资产的项目文件夹层次结构
如果要向Android项目添加自定义动画、自定义菜单、数字视频或数字音频,则必须在项目资源文件夹层次结构下创建新文件夹。你会的在这本书的过程中学习如何做到这一点,因为你了解如何将这些类型的资产添加到你的Android应用程序中。我想在表3-1上作进一步的扩展,以便给你一个更深层次的联合国。对Android应用程序中可用的不同文件夹类型进行筛选。这样您就可以对android开发和在本书中,您将学习如何合并Android资产的类型。
您的“外部”新媒体资产,即那些在AndroidStudio之外使用GIMP、Fusion、Lightscape、Blender、Audacity和Inkscape等软件创建的媒体资产,都保存在资源中der,如图3-9所示,打开以显示所有子文件夹,并作为app/res/引用。
其他“内部”资源资产(最终由Java代码或其他XML定义引用)是使用我称之为“定义文件”中的xml标记创建的,因为它们定义了AP。使用XML标记的应用资产。XML定义可以包括
如数字、文本和布尔常量、样式、主题、菜单、动画和用户界面布局,这些也保存在资源(文件夹)文件夹层次结构中。
Android中有许多不同的资源类型,它们要么在app/res/project文件夹下有自己的子文件夹,要么在/res/value/文件夹下拥有自己的文件名。我们要过去e本章下八节详细介绍了其中的大部分内容。
还可以在此应用程序项目资源文件夹层次结构中提供备用资源。备用资源文件夹支持广泛的设备类型或物理硬件spe。通过将新媒体资产、用户界面设计以及样式和主题定义分组到指定的备用资源文件夹中。\res\value-sw600dp文件夹是另一个资源文件夹名,它保存特定于应用程序设计的600像素或更大屏幕尺寸的资产。SW表示“最小宽度”,因此意味着任何较大的宽度。R>600 DIP(设备独立像素)将符合资格。
在运行时,Android 7将根据设备硬件规范使用适当的资源。
(注意:运行时是代码作为应用程序运行的阶段。这是在AndroidStudio将代码转换为字节码之后的编译过程。艺术使用这个字节码运行Applicat离子在运行时。)
例如,如果您想根据屏幕的物理大小、形状或方向(肖像或景观)提供不同的UI设计布局,即形状或更改,则可以定义不同的ui l。使用不同布局文件夹名的ayout设计,例如应用程序\res\布局-土地用于特定于景观的UI布局设计,或应用\res\布局-端口用于肖像特定的UI布局设计。
作为另一个例子,您可以定义不同的字符串(一个文本字符的集合或数组)值,这些值将在运行时根据最终用户的Androiddev上的语言设置进行计算。冰。正如您所看到的,Android组织资源的方式是有原因的,其中一个主要原因是开发人员可以创建替代资源(备用资源文件夹)。基于Android设备特性在运行时访问。随着本书的推进,我将向您展示如何从Java代码和XML标记中引用和访问外部资源。我们一起我会在涵盖用户界面设计、主题和样式的章节中研究如何设置备用资源文件夹。接下来让我们看一下Android可绘制资产,因为大多数应用程序都使用数字映像e(巴布亚新几内亚)和数字插图(SVG)资产。
Android Drawable:在屏幕上绘制的图像或插图
Android中的“可绘制”的名称是恰当的,因为它是任何可以绘制到显示屏幕上的东西。如图3-9所示,AndroidStudio创建了五个不同的应用程序图标为您的PNG 32应用程序图标。应用程序图标名为icLauncher。
PNG和在app/res/mipmap文件夹中的五种最常见的像素密度可绘制-MDPI,draable-hdpi,draable-xhdpi,draable-xhdpi和xxhdpi新闻部决议。最新的XXXHDPI决议在android 4.2中增加了密度,以适应超高清显示器,例如在4K电视上发现的,到2160分辨率达到4096;或者三星GalaxyS7上的屏幕。有一个2560×1440像素分辨率的屏幕。从智能手表(Ldpi)到4K电视(Xxxhdpi),Android有一个密度常数,可用于任何消费电子硬件设备。
在第9章中,当我们讨论平面设计时,您将学习所有关于像素和分辨率的知识,但是在这里给您一个关于Android屏幕分辨率的DPI不同级别的概述。密度常数,我已经把所有的密度常数和它们的细节都放在表3-2中了,对于那些已经是“像素精明”的人来说。
表3-2Android设备DPI:Android 7和以前的API中特别支持的七级像素密度常数
Android DPI Constant | Constant | Pixel | Pixel | Minimum | Icon Size | Action Bar | Notify |
(and its Density Level) | Name | Density | Multiplier | Display | (in pixels) | Icon Size | Icon Size |
|
|
|
|
|
|
|
|
LDPI (Low Density) | small | 120 | 0.75 | 426x320 | 36x36 | 24x24 | 18x18 |
MDPI (Medium | normal | 160 | 1.0 | 470x320 | 48x48 | 32x32 | 24x24 |
Density) |
|
|
|
|
|
|
|
TVDPI (HDTV | tv | 213 | 1.33 | 640x360 | 64x64 | 48x48 | 32x32 |
1280x720) |
|
|
|
|
|
|
|
HDPI (High Density) | large | 240 | 1.5 | 640x480 | 72x72 | 48x48 | 36x36 |
XHDPI (Extra-High | xlarge | 320 | 2.0 | 960x720 | 96x96 | 64x64 | 48x48 |
Density) |
|
|
|
|
|
|
|
XXHDPI (Super-High | xxlarge | 480 | 3.0 | 1280x960 | 144x144 | 96x96 | 72x72 |
Density) |
|
|
|
|
|
|
|
XXXHDPI (Ultra-High | xxxlarge | 640 | 4.0 | 1920x1080 | 192x192 | 128x128 | 96x96 |
Density) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
如图3-9所示,我打开了可绘制文件夹,以显示AndroidStudio在五个不同分辨率密度版本中为您创建的ic_Launcher图形文件。如果你是看看这些icLauncher文件的像素尺寸,看看表3-2中的第六列。
Android中有十几种不同类型的可绘制对象,每个对象都有自己的类。一些更重要的绘图类型包括
BitmapDrawable,ShapeDrawable,NinePatchDrawable,动画,LayerDrawable,
TransporttionDrawable和StateListDrawable,举几个例子。在这本书中,我将尽可能多地实现不同类型的绘图,所以在使用dr时,您会非常全面。可用于Android应用程序开发。
有几种类型的可绘制资产需要放在可绘制的文件夹中,这样这些资产才能为Android应用程序所可见和访问。主要的是位图。,我们将在第9章中介绍,以及基于位图创建的媒体资产,如框架动画,我们将在第10章中对此进行介绍。指Bi的资产丁字形或架在一个XML定义文件格式的动画也会被保存在这个文件夹中,如将任何XML定义创建的形状(2D矢量图形)。
Android用户界面设计布局:设计UI布局的资产
android中的“布局”也被恰当地命名,因为它定义了用户界面元素和可绘制资产将如何在android设备显示上相对于彼此“布局”。屏幕。在第5章中,我们让您了解了Java的最新进展,您将在本书的其余部分了解更多关于UI布局设计的知识!很有可能,如果你想让你的Android应用程序对每种设备(ITV、智能手机、平板电脑、智能手表和ITV)都有一个定制的设计,你就会有许多定制的/RES/布局文件夹,而不仅仅是/res/lay。外部或/res/布局端口文件夹,正如我前面举的例子。您也可以有复杂的备用资源文件夹,例如/res/lay-sw800dp-land(用于Tablet)和/res/lay-sw480dp-port。手机或智能手表。
您创建的/res/Layout/文件夹和任何自定义布局备用资源文件夹通常都将包含UI布局定义XML文件。正如你们在第6章和第8章中所看到的,以及关于Re本书的ST版中,Android中的UI布局是使用XML布局定义定义的。这些文件是使用XML标记手工构建的,并存储在/res/Layout文件夹或一个可变目录中的filename.xml文件中。使用您创建的布局资源文件夹。
由于我们将在第4章中查看AndroidStudio为我们创建的UI布局的XML,而且由于我们有几章专门讨论UI布局设计,所以我是接下来将保留/res/布局/文件夹的覆盖范围,然后继续查看其他一些资源文件夹类型。尽管Android应用程序倾向于使用充满UI的活动屏幕用于导航的小部件,Android也支持菜单,所以让我们来看看接下来的内容,因为它通常与ActivityUserInterface设计布局集成在一起。
Android菜单设计:定义菜单结构和选项的资产
android中的“菜单”就是它所说的,也是你所期望的:一个菜单,或者一个满是选项的列表,供最终用户选择,以便在android应用程序中导航。基础设施。在以前版本的Android中,菜单的使用不如ITV设备和ChromeOS(以及Android笔记本电脑和PC机)的集成那么重要。KS(KS)在数十亿名消费者中广受欢迎。
Android中有几种菜单类型,包括弹出菜单、上下文敏感菜单和选项菜单。我们将在阅读这本书的过程中更深入地了解菜单设计,增加菜单项t。没有你的应用程序菜单。从技术上讲,您的应用程序使用的Android菜单是通过Android设备上的硬件菜单按钮,或者通过位于n Android设备如果没有硬件菜单按钮,称为选项菜单。状态栏总是在ActionBar之上,在每个Android设备的最上面,并且在二分器、网络模式指示器(3G、4G、4G LTE等)、信号强度指示器、无线连接指示器等设备运行指标。
除了“选项”菜单之外,“操作栏”还包含应用程序图标、应用程序标题;如果代码正确,则包含可以访问应用程序区域的图标或文本选项卡。Ich通常是一个具有自己的UI设计布局方案的活动。
app/res/Menu/文件夹将包含XML定义,概述要为应用程序创建的菜单结构。请注意图3-9中的AndroidStudio遵循文件命名约定s用于Java和XML文件,因此您需要按照这些文件命名,并将包含菜单定义菜单_main.xml的文件命名为。请注意文件命名约定;Menu_main.xml菜单XML定义,Mjava和Activity.xml布局XML定义文件。这些都在逻辑上匹配(类型函数),因此您知道它们是所有的功能都是相互关联的。这是因为每个活动都将有一个ui布局和一个菜单,所以这会使事情组织起来,这样您就可以知道哪些代码可以作为android应用程序一起工作。随着时间的推移,复杂性也在增加。
Android数据值:用于定义固定应用程序常量的资产
Android项目文件夹层次结构中的“值”是Java编程中称为“常量”的。Java代码中的值与Java常量不同,因为它们意味着改变,而相反静物是用来保持不变的(这就是为什么它们被称为常量)。在第5章中,我们将在Java的第5章中讨论这一区别。
具体来看Java编程语言。当然,在我们深入了解这本书之前,您将需要确切地了解java的工作原理,因为事情会越来越多地变得com。每一个连续的章节。
Android值(常量)比Java常量稍微灵活一些,因为一旦Java代码将这些初始常量值放入内存中,应用程序代码可能会在需要时更改它们。
让我们更详细地研究当前应用程序引导项目中的app/res/value/文件夹。这就是您(或AndroidStudio)在新的Android应用程序项目系列中的位置将放置任何预定义的应用程序值。它们以XML文件的形式存在。这些XML文件包含定义常量名称及其数据值的常量定义。
在这些XML文件中定义的值常量稍后将在Java代码中或通过XML标记引用。例如,这些值可能是字符串(te的集合)。XT字符)、风格(你想要的UI设计要格式化整个APP)、尺寸(数值大小规格),或其他常数需要“硬编码”,你的java c的值在您的程序逻辑或UI设计中,您不想更改的ODE或XML标记使用。
拥有app/res/value/文件夹背后的逻辑是将应用程序的所有常量值保存在一个地方。这是一个与我们在第2章中使用的存储库类似的概念。AndroidStudio的日期,只有/res/value/是一个资源库
用于Android应用程序中使用的值常量。因此,/res/value/文件夹是您的应用程序常量存储库数据(文件夹)结构,它的使用允许您将应用程序常量在一个位置上更改。这样,如果在应用程序开发或测试期间需要调整常量值,可以使用XML文件进行调整。
图3-9显示了AndroidStudio已经为您创建并放置到引导Android应用程序中的app/res/value/文件夹的常量XML文件类型的四个示例IntelliJ项目层次结构:
colors.xml:XML文件将定义颜色常量的值是在应用程序中使用的。这些允许您对UI进行标准化。例如,您可以将应用程序的背景颜色定义为常量。然后,如果以后决定对其进行调整,则只需要在一个地方进行调整,并且更改将在整个应用程序中实现。我们在第九章中详细介绍了颜色理论和十六进制颜色值,其中将介绍Android图形设计的概念和原则。
ddens.xml:一个XML文件,它定义了尺寸常量值,如标准屏幕尺寸,或UI的字体大小。然后,您可以在整个应用程序中使用这些值,以确保其一致性。
xml:定义应用程序中使用的文本(在Java中称为“字符串”)值的XML文件。例如,您可以在这里放置屏幕标题、菜单选项或应用程序名。在代码中引用这些文本常量。如果将来需要更改或改进这些项,只需在这个中心位置进行,而不是在Java代码或XML标记中。
xml:一个XML文件,它定义了您将在应用程序中使用的UI设计样式。这些样式常量将应用于UI元素,这些元素将引用这些样式Constan。T定义,允许您将应用程序的外观和感觉与物理布局和UI功能分开。随着时间的推移,这使得你的应用程序更容易细化、修改和增强风格。
其他类型的值常量XML定义文件可以在Android项目的app/res/value/文件夹中创建和定位,其中包括以下数据值常量类型:
xml:一个XML文件,它定义了在应用程序中一起使用的任何一系列数据值常量(在Java中称为数组)。例如,这可能是图标文件、图形层列表、菜单项列表或向用户显示的选项列表。
xml:一个XML文件,它定义了将用于Android应用程序的Java编程逻辑中的数值整数常量值。我们将在第五章中讨论这个问题。
bool.xml:定义布尔常量值(true或false)的XML文件,用于应用程序中逻辑状态(如开关)的默认(初始)设置。这些例子它包括诸如ON或OFF、是或否、可见或隐藏、最小化或最大化等状态。
请注意,Android对app/res/value/文件夹中的不同类型的XML文件使用了特定的文件名约定,这增加了另一个层次的复杂性。请注意,您也可以在此文件夹中创建您自己的自定义XML文件和文件名,因此您不限于这里讨论的常量类型。接下来,让我们介绍一下AndroidStudio(Intel)的文件夹名LIJ)没有自动为您创建,您可以选择地利用这些资源类型来包含其他资产类型,例如动画、数字视频、数字音频或自定义XML数据。AndroidAnim文件夹:定义向量或吐温动画的资产
除了框架动画,也被称为位图动画,或光栅动画,Android 7还支持矢量动画,它的名称是之间的动画。这种类型的动画在indu中也是已知的。作为过程动画,它使用Java代码或xml标记参数定义创建,而不是通过一系列或一系列位图图像(如视频帧)“flipbook”来创建。创造运动的错觉。
而android中的位图动画使用Bitmap动画类,而在android中,Tweam动画只使用动画类,因此正确的文件夹包含与proce相关的资源或资产。硬脑膜动画不是app/res/draable/文件夹,而是app/res/anim/文件夹,为了在Android中使用这种类型的动画,您必须创建这个文件夹。幸运的是,我们会在第10章中讨论这一点,因此您将在那时创建这个Android动画资源文件夹。
Android动画:用户界面属性动画的资产
在android中有第三种类型的动画,称为属性动画,用于为您的任何用户界面小部件(在android中称为“视图”)动画“属性”或“参数”。,甚至可以在整个UI设计中完成。你可以用它来获得令人印象深刻的特效,特别是过渡效果,这将吸引你的最终用户,增加你的应用程序。专业精神。属性动画XML定义文件保存在app/res/动画/文件夹中,并引用要动画的UI元素,以及与以下数据值之间的数据值:插入之间创建一个平滑的属性动画。这个文件夹之所以被称为动画文件夹,是因为AndroidJava类被称为ViewProperty动画。
Android原始文件夹:预先优化的视频和音频资产
[人名] 法尔斯
AndroidOS中的app/res/raw/文件夹保存应用程序的“原始数据”。android中的原始数据不会被android操作系统以任何方式优化(接触),它只是简单地被回放(通常是流的)。这个文件夹“原样”。这是您想要包含新媒体资产的文件夹,您已经花了时间来优化数据占用(文件大小)与质量比率。这将是唐e在AndroidStudio之外,使用新的媒体软件包,如Audacity、GIMP、Inkscape或Lightworks,所有这些都是您下载并安装在第2章中的。
稍后,我们将在本书第11章和第12章讨论如何创建和利用app/res/RAW/文件夹,其中我将介绍AndroidMediaPlayer和MediaController类,如以及如何回放数字音频和数字视频,新媒体资产资源,使用这个特定的原始资产资源文件夹。AndroidXML:任意XML和配置
您应该知道的最后一个资源文件夹是app/res/xml/文件夹,该文件夹用于包含非android xml文件,这些文件指定数据结构或用于使用的配置参数。在您的应用程序中,但是它们是在Android指定的XML结构范围之外的。正如您将在第4章和本书的其余部分中看到的,android定义了大量的appli。使用XML的阳离子组件和特性,而这(XML标记)必须在
正确的方式或格式。此文件夹通常包含与Android应用程序创建过程无关的XML文件,但这些文件由Android应用程序使用Resources.ge“解析”(读)方法。我们在第5章中讨论了Java方法调用。
更新AndroidStudio:随时间升级SDK
当我启动AndroidStudio来创建本章的数字时,启动屏幕上有一个可用的更新链接。我点击了它,得到了一个默认设置对话框,如图3-10所示,sh正在进行安卓7的升级。
1.\选择UpdateAvailableSDK版本(在右上角,以蓝色高亮显示,如图3-10所示),在本例中为24.0.1,或者Android 7.0.1(如果您愿意),然后单击OK按钮。
图3-10。如果您在AndroidStudio启动屏幕上看到一个更新链接,单击它并查看发布了什么新SDK
2.\单击SDKTools选项卡并选择ShowPackageDetails,并确保选中24.0.1,在图3-11中将其视为步骤1;单击OK按钮,在图3-11中显示为步骤2。
3.在“确认更改”对话框中单击OK,在图3-11中显示为步骤3,并等待安装完成,即步骤4。安装更新时单击Finish,如下所示图3-11中的步骤5.
图3-11.。创建一个新层对话框
4.\取消选择ShowPackageDetails选项,并确保24.0.1更新(或您可能正在查看的任何最新更新)显示为已安装。为我的安装为24.0.1,如图3-12所示。一旦所有内容都被更新,单击OK按钮退出,当AndroidStudio启动时,它将是最新版本。请注意,在未来可能是API 25或26,因为API每季度都会修订。
图3-12.。使用选择。➤反转菜单序列来反转所选内容,因此它选择徽标而不是白色区域。
确保当Android Studio通知您可以使用更新时更新,因为它是实时连接到AndroidStudio服务器的。现在我们准备好了XML标记!
摘要
在这第三章中,您了解了Android平台的结构,以及当您的最终用户之一在其中一个平台上启动应用程序时,它如何在运行时处理应用程序。roid硬件设备。您了解了Dalvik虚拟机(DVM)和Android运行时(ART)虚拟机(VM)。您了解了如何创建AndroidStudio 2.3应用程序引导程序和android项目文件夹基础,通过在AndroidStudio中使用NewAndroidApplicationProject系列对话框。您仔细查看了包含android 7应用程序的文件夹,其中大部分是whic应用程序。h(除了Java源app/java/文件夹)是应用程序资源文件夹。我们查看了Android应用程序中可以拥有的各种类型的资源文件夹。
在下一章中,您将通过深入了解您在本章中创建的android应用程序,包括app/res中的xml文件,来了解xml标记语言的所有信息。/value/文件夹,以及app/res/ployout/文件夹和app/舱单/项目文件夹中的AndroidManifest.xml文件。
,AndroidStudio集成开发环境简介
在本章中,我们将介绍AndroidStudio 2.3开发环境和Android平台的工作原理。Android操作系统已经不再使用Eclipse集成开发环境环境(IDE)与安卓开发工具(ADT),以及64位安卓5.0及更高版本,已经采用IntelliJIDEA(集成开发环境应用)。我们安装了IntelliJ作为一部分在上一章中已经使用了一些配置工具和对话框,比如SDKManager,将其配置为基本的Android应用程序开发adgeair-defense ground environment 防空地面环境,防空地面雷达网
为了正确地涵盖AndroidStudio 2.3和IntelliJIDEA的概述,同时在实际动手开发android应用程序方面仍取得稳步进展,
这一章我将向您展示创建一个空的Android应用程序“引导”的工作过程,这是您开始创建Android应用程序时所使用的基础。这种引导应用程序结构为您提供了Android 7.1.1应用程序的基本基础,这也使绝对初学者能够很好地学习以下最小代码结构:Android应用程序是建立在。这包括一个Android活动Java类,一个Android Manifest应用程序定义XML文件,一个PNG 32 Android应用程序图标,一个基本菜单系统xml定义和一个基本的用户界面(UI)布局容器XML定义。
在本章中,我们将通过查看IntelliJIDEA中的Android应用程序资源文件夹结构来更仔细地查看所有基本的Android应用程序组件,其中启动了一个NEW Android项目系列对话框也将自动为您创建。正如您在第2章中已经看到的,这是在AndroidStudioStart菜单中,您在第一个i中看到了红色在图2-5中截图的中间部分。
我们将详细检查IntelliJ中的引导(空)Android应用程序文件和文件夹结构。这将告诉您AndroidStudio 2.3(和Android7OS)如何想要查看您的应用程序组织和组织的组件和资产。我们也会
详细查看一些在引导Android应用程序项目文件夹结构中不是自动创建的其他资源文件夹,这样您就可以选择自己创建什么了。你知道在这本书中,我将创建一些专门的资源文件夹,比如/res/anim/文件夹,它包含XML动画定义。自定义资源文件夹通常保存新媒体资产的UCH作为动画、视频、音频、用户界面设计等资产,将增强Android应用的用户体验。
随着您在Android方面的知识的进步,您将在本章中将应用程序基础增强为真正令人印象深刻的东西,并且
了解更多有关Android7.xOS以及AndroidStudio 2.3和IntelliJIDEA的信息。在你得到一些关于Android Studio中的所有东西是如何结合在一起的高级概述之后,然后,在第4章和第5章中,我们可以开始“深入研究”XML中的资产定义和Java 8的应用程序逻辑编程。
Android应用程序结构:Java、XML和资产
Android 7组件建立在64位Linux操作系统内核的坚实基础之上。Android 6运行在LinuxKernel 3.18.10上,Android 7运行在LinuxKernel4.4.1或更高版本上。后来的linux内核have如您所料,功能更多,bug更少。
最上面的是大量(数千)高级Java函数,或者Java方法,这些函数是通过使用Java类进行逻辑安排的。这些类根据它们完成的任务来存储。使用大约一百个Java包。这些包被进一步组织成Java库或API,这简化了您与android及其linux内核和d的通信任务。逃避硬件。
正如你所想象的那样,这本身就是复杂的,所以不要指望在一本书中涵盖Android 7的所有功能(甚至十几个)。我将介绍Java 8库的概念在第5章中,包以及Java对象、常量、类和方法是什么。
在这个复杂的Java代码库层之上,您可以使用XML标记的高级(也不是那么复杂)层来定义应用程序资产。XML标记使您可以更容易地定义应用程序的JaVa对象结构,以及将使用的任何数据常量。
在Java 8编程逻辑中。此外,XML标记可以定义应用程序UI设计、样式、主题和新媒体资产。这些面向设计的资产允许您控制您的android。应用程序外观、声音和函数,最终将定义用户体验。
由于xml更容易在其中创建Android应用程序内容,我将在本书的中间五章中使用它,向您展示如何定义各种应用程序组件、资产、外观和感觉。我将在第6章到第10章中讨论基于XML的UI、图形和动画设计.。图3-1显示了Android应用程序结构的层次结构,从Linux OS内核,对开发人员隐藏;以及Java 8、XML和开发人员创建、编码、设计、定义和构造的新媒体资产,最终将这些层合并到一个Android中。申请。这些层从下到上趋向于降低复杂性,特别是如果您的新媒体资产已经存在的话。
图3-1。Android操作系统基础:从Linux内核到Java库,到XML定义,再到应用程序媒体资产
从零开始创建新媒体资产可能与Java编程一样复杂,因此如果您的资产还不存在,那么这些降低的复杂性水平就不一定成立。如果你要开始掌握新媒体内容生产的道路,我必须掌握新媒体的基本面一系列的六本书(搜索这个作者的名字:HTTP:/ / www.apress。com),以及L作为Android Studio的新媒体基础(Apress,2015)标题,包含有关3D、数字音频、数字视频、数字图像合成和数字病态的信息和工作流程(SVG)新媒体内容的创建。
Android 7平台结构:开放的集合
科技(总称)( technology的名词复数 )
正如您所了解的,Android构建的基础是经过仔细编码和艰苦测试的Linux内核。linux及其核心服务管理智能手机物理硬件,tabl。ets、电子书阅读器、智能手表和itv,并使android应用程序能够完全访问每个消费电子设备的功能,包括
GPS、触摸屏、内存、数据存储、摄像头、闪光灯、陀螺仪、罗盘、加速度传感器、气压传感器、生物(电子)传感器,蓝牙,Wi-Fi,NFC,4G LTE,USB,以及更多。
然而,Linux并不是独自完成的。android拥有大量的java api库,为SQLite数据库管理、2D映像等提供更高级别的自定义功能和服务。合成,图像混合,svg渲染,三维渲染,网页(html 5,cs 3和js)渲染,数字音频播放,数字视频流,基于帧和过程的动画,蓝牙,D更多。其中大多数基于开放技术,如SQL、GIF、SVG、WebKit、OpenGL、Vulkan、PNG、FLAC、Ogg Vorbis、Ogg Theora、VP8和VP 9。一些“几乎”开放源码(这些专利e在过去的几年里,xpire已经被谷歌授权用于Android系统,如MPEG-4、MP3、Wave、BMP、JPEG、蓝牙和类似的新媒体技术。
更高级的Java函数库是Android应用程序开发人员用来创建应用程序的库。这是为了使开发人员不必直接与低级别的Operati“交谈”。NG系统功能。这样做是为了使应用程序开发变得更加容易!您将学习一些用于dee的核心Java 8功能库。期间封装Android 7.1.1应用程序本课程从本章开始,当我们查看基本的(空的)Android应用程序引导Java代码时。
用户端的android操作系统(相对于开发人员端,我们将在本书中重点讨论)还包括大量的“最终用户实用程序”应用程序,其中androi。D设备用户已经开始期待他们的Android设备。这些例子包括电话呼叫管理实用工具、电子邮件客户端、各种社交媒体平台客户端、联系人管理器、web。浏览器,闹钟,日历,谷歌地图,谷歌搜索,媒体播放器,可能还有一些基本的休闲游戏等等。
Android操作系统支持开发人员希望在应用程序中使用的所有流行开源新媒体格式,包括Android 5中添加的功能强大的ON2 VP9视频编解码器。On2是acqGoogle发布了一款名为WebM的开源视频编解码器,VP8和VP 9都是由Google发布的,你可以在Android以及Firefox、Opera和Chrome等浏览器中找到它。WebM和MPEG-4 H.264 AVC数字视频编解码器的“质量与文件大小比”,以及它们的回放性能,对于开源视频编解码器来说是相当令人印象深刻的。在android 5.0中还增加了ab。播放MPEG-H H.265 HEVC内容。
有关Android7.1.1中支持的二十多个新媒体格式的更多信息,请访问:
本章的下一节将介绍Java的Dalvik虚拟机(VM),它优化了Java代码,以便在低功耗、嵌入式(可移植和ITV)设备中有效执行。铒电子器件。
(注意,在这本书中,您将使用XML和Java组合构建应用程序。它们位于操作系统的顶层,如图3-1所示。但是,如果你在安德罗大学有进步的话,你可以通过使用android本地开发工具包(Ndk),而不是使用更高级别的软件,直接使用低级语言C访问操作系统及其服务。E开发工具包(Android SDK),我们将使用这本书。您可能会认为这是一个应用程序,需要最快的速度,如游戏,或实时他“罩下”的方法。艺术监控训练计划。这个AndroidNDK目前已经超出了本书的范围。)
现在,让我们看一下您的android应用程序的运行时或编译版本,以及它如何使用java字节码和android运行时(Art)来优化运行时(最终用户)的性能。Android应用程序。
Android 7可执行结构:编译的运行时Java
字节码
AndroidStudio 2.3开发环境中的所有内容以及所有包含的应用程序都是通过使用Java代码和XML标记的组合来创建的。这是由Intellij a编译的。然后,将您的应用程序升级为Java“字节码”版本,该版本将是使用Android运行时(ART)实用程序运行,这是Android操作系统的一部分。IntelliJ创建这个字节码,并将其放入.dex文件格式(类似于.exe文件)。
这种.dex文件扩展名和数据格式实质上相当于一种紧凑的、低级别的可执行文件格式,即Android操作系统,因此是运行android操作系统的android设备,就能理解和运行。DEX并不是专门加密的,但是如果您查看其中一个已编译的文件的内容,它将不容易被解密。XML到Java c++的流ODE、字节码、可执行数据如下:
XML(.xml)Java(.CLASS)字节码(.DEX)App(.APK)运行时(ART)设备显示
安卓4.4之前的安卓运行时环境只使用DalvikVirtualMachine(DVM);在Android#number1#中,您可以在dvm和art之间进行选择。安卓5.0及更高版本只使用ART。这些运行时让你的应用程序访问硬件设备功能,以及底层的android和linux内核功能,这样你就不用自己做所有的低级编程了。
好消息是,一个Android绝对初学者,你不需要了解艺术,除了这个.dex文件是什么,它在运行时的代码链中提供的位置,和我T将为用户优化您的应用程序。要使用Java编程语言,只需在程序中包含来自Java库的适当组件,在Java中使用称为import语句的东西。这样做之后,应用程序的代码可以使用内置Java库的功能。您将学习如何将这些功能强大的Java图书馆在本章后面的部分,以及所有章节中,都要在本书的其余部分中工作。我们还将在第5章的JavaPrimer中详细介绍这一点。
接下来,我将向您展示如何创建您的第一个android应用程序,以便您可以看到如何在高度结构化的android项目层次结构中组织您的android 7应用程序资产,该层次结构必须是让Android应用程序正常工作。通过这种方式,我们可以直接使用AndroidStudio应用程序开发环境,看看如何创建一个新的空Android引导程序应用基础设施;并开始学习Android开发,Android Studio,java,xml,Gradle,应用资源,和新媒体资产。
创建Android 7应用程序:AndroidStudio的新项目
现在你可能很渴望火起来的Android Studio和IntelliJ 2016,并创建你的第一个Android 7的应用。我们需要这样做,你能了解java代码,XML标记,一新媒体资产,在Android中称为“资源”,在创建自己的定制安卓7.0应用程序时协同工作。
每种编程语言都有一个悠久的传统,就是让新用户创建一个“HelloWorld”应用程序。让我们创建我们自己的绝对初学者HelloWorld Android
申请现在就在这里。为了尽可能做到“开箱即用”,我们最终会在书中把这个应用程序变成一个“Hello Universe”应用程序,这样我们就可以在我们了解到越来越多关于Android图形、用户界面设计等方面的知识时,在AndroidStudio为我们创建的引导(空)应用程序上展开(没有双关意)。我们加起来RTS的令人印象深刻的功能,你会发现在我们的宇宙周围。
首先,我们将启动AndroidStudio,并创建新的应用程序。然后,我们将查看AndroidStudio为我们创建的所有文件,以及AndroidStu的Java和XML代码Dio生成的功能可以让你的应用程序启动和运行。然后,我们将详细研究项目结构的资源文件夹层次结构,并查看AndroidStudio希望您如何构造您的Android#number0#项目资产(资源)。
最后,我们将看看在安装了AndroidStudio之后如何升级到AndroidStudio的更高版本。在我工作的时候发布了AndroidStudio 2.3的更高版本在本章中,我拍摄了一些屏幕截图,展示了当AndroidStudio的新版本发布时您将看到什么,以及如何从内部处理下载、升级和安装过程安卓工作室本身。
AndroidStudio欢迎菜单:创建一个新的Android 7应用程序
第一步是启动Android Studio 2.3。从那里,使用Android Studio的菜单,你看到图2-5在2章中,您将创建新的Android 7.1.1项目中的应用...。我们将要创建的应用程序基础结构(或AndroidStudio即将为我们创建)将包含应用程序的Java编程逻辑、XML标记、新媒体资产和OOS呃应用资源。
1.\要启动AndroidStudio,请查找并单击位于工作站任务栏上的AndroidStudio快速启动图标。如果您没有创建其中一个,请在硬盘上找到Studio64.exe(您可以使用“文件管理实用程序”中的“搜索”),然后双击它.
2.\您将看到欢迎来到AndroidStudio启动对话框,您将单击第一个选项,启动一个新的AndroidStudio项目。如果您想看到上述对话框的屏幕截图,请e图2-5,来自第二章.
3.\一旦选择了这个选项,就会得到NewProject对话框,如图3-2所示。这是用于创建空白AndroidStudio项目的五个对话框系列中的第一个...。这些对话框将逐步帮助您完成创建新的Android应用程序项目基础结构的过程。接受应用程序和user.example.com公司域的默认应用程序名称。因为这是绝对初学者标题,所以不需要选中包含C支持选项复选框。单击“下一步”按钮,进入“目标Android设备”对话框,在该对话框中您将接受默认的电话和平板电脑应用程序类型选项。
图3-2.。接受默认的“我的应用程序名”user.example.com公司名称、电话和平板电脑,然后单击Next
4.\在单击目标Android设备对话框中的第二个Next按钮后,AndroidStudio可能启动安装AndroidSDK存储库更新程序进度条,其中如图3-3所示.。AndroidStudio正在做的是检查您为使用核心Android操作系统(电话和平板电脑)以及Android磨损而指定的AndroidAPI安卓电视,安卓汽车,或玻璃。如果其中任何一个需要安装或更新,此安装AndroidSDK更新功能将启动。
自动并使AndroidStudio与您希望开发Android应用程序的应用程序类型兼容。
5.\一旦AndroidStudio下载了开发在Target Android设备对话框中指定的Android应用程序所需的所有新更新和API,您将获得
安装请求组件对话框,如图3-4所示。这将向您展示在AndroidStudio中添加了什么。在此对话框的左下角看到“已完成”后,单击“下一步”按钮进入下一个对话框,继续创建一个新的空白Android应用程序引导软件基础结构。
图3-4。安装请求组件对话框将告诉您AndroidStudio为您安装了哪些API
6.\您将遇到的下一个对话框是AddanActivitytoMobile对话框,如图3-5所示。默认选项是创建一个空活动(在(这个数字的顶部)。这是绝对初学者标题的最佳选择,因为我们需要检查创建Android应用程序所需的最低XML标记和Java代码。我们然后从这些知识中积累起来,了解什么是Android的基本应用程序基础设施。
图3-5。在AddanActivitytoMobile对话框中,接受默认的空活动选项,以蓝色显示,然后单击Next
7.\查看添加活动到移动对话框中的其他一些选项,看看AndroidStudio能够为您创建什么。这是一个很酷的特性,因为AndroidStudio可以许多核心应用程序Java编码和xml标记都是自动为您提供的,允许您进行应用程序开发。
在这个阶段,您可以更快地使用新的媒体资产,并更快地定义软件功能。您可以为ITV或平板电脑创建全屏活动;GoogleAdMob和Maps激活导航抽屉活动;滚动活动;选项卡活动;基本的android活动;以及各种基于实用程序的活动,如登录屏幕、设置集合、主细节数据。一个显示实用程序和更多。如果您想知道这个“活动”是什么,它是一个功能用户界面显示屏幕或Android中的功能集合。