为了账号安全,请及时绑定邮箱和手机立即绑定
Android Studio 查找示例代码

前一小节我们介绍了如何创建代码和资源,本节课程我们学习如何通过 Android Studio 来访问和使用 Google 提供的优质 Android 代码示例。

3.2 android闭包

这个闭包主要是配置我们打包的一些信息,包括包名,版本号,版本名称,混淆配置,签名信息等。下面我们详细介绍下:compileSdkVersion: 设置编译时的 Android 版本。buildToolsVersion: 设置编译时构建工具的版本。3.2.1 defaultConfig{}闭包:这个闭包里主要是设置包的一些基本信息,如包名,版本号等。applicationId: 设置打包后的 APK 的包名。minSdkVersion: 设置 apk 最低的支持 Android 版本,如果手机的 Android 系统版本低于这个值,app 一般无法安装。targetSdkVersion: 设置项目的目标版本,表示应用程序在该版本上已经做过充分的测试,系统会为该应用启动一些对应该目标系统的最新功能特性。Tips: Android系统的行为变更,只有 targetSdkVersion 的值设置为大于或等于该手机系统的 API 版本时,才会生效。例如,设置 targetSdkVersion 为 28,对应为 Android 系统版本为 9.0,在 Android 10.0(对应 targetSdkVersion 为 29)系统的手机上,Android 10.0 拥有的新特性[如外存中私有目录权限变更等功能]就不会被启用。versionCode: 设置 APK 包的版本号,一般情况每次打包都要 +1,否则会无法覆盖安装。versionName: 表示版本名称,展示在 APP 的关于里面或是应用市场上。testInstrumentationRunner: 设置单元测试,android.support.test.runner.AndroidJUnitRunner表明是要使用AndroidJUnitRunner进行单元测试。3.2.2 buildTypes{}闭包:这个闭包主要是配置我们打包的,一般包含两个闭包release和debug分别对应的是打Release包还是Debug包。所谓Debug包就是我们直接运行的包,这个包的配置新建项目时是省略没有写的。 buildTypes { release {// 生产包配置 minifyEnabled true//是否混淆 shrinkResources true//是否启用未使用资源的收缩 proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'//指定混淆的规则文件 signingConfig signingConfigs.release//设置签名信息 zipAlignEnabled true//是否对APK包执行ZIP对齐优化,减小zip体积 renderscriptOptimLevel 5 //指定RenderScript的编译优化等级,一般设置为3 } debug {// 开发配置 minifyEnabled false//是否混淆 shrinkResources false//是否启用未使用资源的收缩 signingConfig signingConfigs.release//设置签名信息 proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'//指定混淆的规则文件 zipAlignEnabled true//是否对APK包执行ZIP对齐优化,减小zip体积 renderscriptOptimLevel 5 } }从上面的代码中我们可以看到release和debug的配置基本差不多。关于每个字段的具体的意义上面注释中有写,下面就不多做说明了。我们下面主要看下signingConfig这个字段,这个是设置 APP 的签名信息的。 //签名 signingConfigs { //你自己的keystore信息 releaseConfig { storeFile file(rootProject.ext.store_file) storePassword rootProject.ext.store_password keyAlias rootProject.ext.key_alias keyPassword rootProject.ext.key_password v1SigningEnabled true v2SigningEnabled true } }Tips: 签名信息设置signingConfig闭包是在最外层的,也就是和buildTypes闭包是在同一层级的。千万不要把它放在buildTypes闭包里面。3.2.3 dependencies 闭包这个闭包是项目运行所需要的依赖。如我们需要引用的本地 libs 目录下的第三方的 jar 包或是 aar 包,还可以是 maven 库里面的第三方的开源库 [如 support-v4 support-v7 包等]。Tips: 这里我们要和最外层的build.gradle文件的dependencies闭包区分开来。这里的 dependencies 闭包是配置项目运行时引入的第三方库。而最晚层的文件中的 dependencies 闭包是配置构建项目时的 Gradle 的版本。

4. 为什么要使用 Android Studio?

通过前面同类开发工具的对比,我们为什么更推介使用 Android Studio 呢?因为它不仅集成了强大的代码编辑器、开发者工具,还提供更多可提高 Android 应用开发效率的功能,例如:基于 Gradle 的灵活编译系统;快速且功能丰富的模拟器;统一的环境(供你开发适用于所有 Android 设备的应用);代码模板和 GitHub 集成,可协助你打造常见的应用功能及导入示例代码;大量的测试工具和框架;Lint 工具,能够找出性能、易用性和版本兼容性等方面的问题;C++ 和 NDK 支持。

2. Android 的层级结构

Android 从系统架构上可分为四层结构,自下而上分别是:Linux 内核系统运行库应用程序框架应用程序

Android Studio 常用配置

Android Studio 提供了诸多向导和模板,可用于验证系统要求和配置默认设置。本节课程主要介绍可能需要使用的其他配置设置,以便我们自定义对 Android Studio 的使用方式。比如配置文件有哪些,各自作用是什么?如何修改虚拟机参数选项?如何配置配置 JDK 版本?如何配置代理?如何优化配置等。

2.1 创建 Kotlin 的 Android 项目工程

打开 AndroidStudio 创建一个 Android Project,并且勾选语言为 Kotlin (默认勾选):创建完毕后,会自动加载 Kotlin Gradle Plugin 和 Kotlin 标准库的依赖,可以看到默认 Kotlin 创建 MainActivity 比 Java 看起来都简洁多了。此外 Kotlin Android Project 会默认加载一些 Kotlin 依赖,可以省去自定义配置,帮助更高效开发 Android 应用,下面是默认依赖配置:

4.2 Android Plugin for Gradle HTTP 代理设置

若从命令行或在未安装 Android Studio 的计算机上运行 Android 插件,则应在 Gradle 编译文件中设置 Android Plugin for Gradle 代理设置。对于特定于应用的 HTTP 代理设置,请根据各应用模块的要求在 build.gradle 文件中设置代理设置。apply plugin: 'com.android.application'android { ... defaultConfig { ... systemProp.http.proxyHost=proxy.company.com systemProp.http.proxyPort=443 systemProp.http.proxyUser=userid systemProp.http.proxyPassword=password systemProp.http.auth.ntlm.domain=domain } ...}对于整个项目的 HTTP 代理设置,请在 gradle/gradle.properties 文件中设置代理设置。Project-wide Gradle settings....systemProp.http.proxyHost=proxy.company.comsystemProp.http.proxyPort=443systemProp.http.proxyUser=usernamesystemProp.http.proxyPassword=passwordsystemProp.http.auth.ntlm.domain=domainsystemProp.https.proxyHost=proxy.company.comsystemProp.https.proxyPort=443systemProp.https.proxyUser=usernamesystemProp.https.proxyPassword=passwordsystemProp.https.auth.ntlm.domain=domain...```

Android 模拟器的安装及管理

在前一小节中,我们创建了第一个应用,用到了 Android 模拟器来运行应用。本节课程就详细介绍下如何安装模拟器组件,如何创建和管理虚拟设备。Android 模拟器可在计算机上模拟 Android 设备,这样我们就可以在各种设备上以及各个 Android API 级别测试我们的应用,而无需拥有每个物理设备。模拟器几乎可以提供真正的 Android 设备所具备的所有功能。我们可以模拟来电和短信、指定设备的位置、模拟不同的网速、模拟旋转及其他硬件传感器、访问 Google Play 商店,等等。

Android SDK 工具介绍

从本小节开始我们将介绍 Android SDK 中包含的众多命令行工具,包括 SDK 工具、构建工具、平台工具、模拟器工具、分析工具。本小节我们学习 SDK 工具。

Android 的 UI 根基 View与View

好了,到这里要恭喜你正式进入 Android 基础的学习,在后面的章节会陆续出现很多 Android 原生 API,在学习之前向大家推荐 Google 官方文档,里面有很全的 API 功能描述、使用说明及使用示例。当然,如果英文原版大家上不去,可以访问中文站点:Google官方中文文档,英语盲不要高兴的太早,说是中文文档,但其实内容几乎都是直接 copy 的英文。不过还是建议大家在学习过程中多多查阅官方文档。基础知识将从 Android UI(User Interface)开始,因为 UI 是用户最直接感知到的,也是一个应用展示强大功能的窗口。那么学习 UI,就不得不先提到 View 和 ViewGroup,它俩是 Android 一切 UI 的根基,所以的窗口布局都依赖它们完成,让我们一起看看 View 和 Viewgroup 是何许人也。

3. Android 各个版本、代号及 API 级别

从 Android 1.5 开始,Google 发型每一个 Android 版本都用一个甜品的名称作为代号,而代号首字母是从 C 开始以此按照字母顺序排列,而直到 19 年发布的 Android Q 开始,Google 弃用了这一传统,改名为 Android 10。名称版本号API等级发布时间BuildVersionQ10.0292019-09BuildVersionCodes.QPie9.0282018-08BuildVersionCodes.POreo8.1272017-12BuildVersionCodes.OMr1Oreo8.0262017-08BuildVersionCodes.ONougat7.1252016-12BuildVersionCodes.NMr1Nougat7.0242016-08BuildVersionCodes.NMarshmallow6.0232015-08BuildVersionCodes.MLollipop5.1222015-03BuildVersionCodes.LollipopMr1Lollipop5.0212014-11BuildVersionCodes.LollipopKitkat Watch4.4W202014-06BuildVersionCodes.KitKatWatchKitkat4.4192013-10BuildVersionCodes.KitKatJelly Bean4.3182013-07BuildVersionCodes.JellyBeanMr2Jelly Bean4.2-4.2.2172012-11BuildVersionCodes.JellyBeanMr1Jelly Bean4.1-4.1.1162012-06BuildVersionCodes.JellyBeanIce Cream Sandwich4.0.3-4.0.4152011-12BuildVersionCodes.IceCreamSandwichMr1Ice Cream Sandwich4.0-4.0.2142011-10BuildVersionCodes.IceCreamSandwichHoneycomb3.2132011-06BuildVersionCodes.HoneyCombMr2Honeycomb3.1.x122011-05BuildVersionCodes.HoneyCombMr1Honeycomb3.0.x112011-02BuildVersionCodes.HoneyCombGingerbread2.3.3-2.3.4102011-02BuildVersionCodes.GingerBreadMr1Gingerbread2.3-2.3.292010-11BuildVersionCodes.GingerBreadFroyo2.2.x82010-06BuildVersionCodes.FroyoEclair2.1.x72010-01BuildVersionCodes.EclairMr1Eclair2.0.162009-12BuildVersionCodes.Eclair01Eclair2.052009-11BuildVersionCodes.EclairDonut1.642009-09BuildVersionCodes.DonutCupcake1.532009-05BuildVersionCodes.CupcakeBase1.122009-02BuildVersionCodes.Base11Base1.012008-10BuildVersionCodes.Base

4. Android Studio 主窗口界面

Android Studio 安装完毕后我们就可以运行编辑器了。Android Studio 运行后的主窗口界面如下图:Android Studio 主窗口由6个逻辑区域组成。工具栏供我们执行各种操作,其中包括运行应用和启动 Android 工具;导航栏帮助我们在项目中导航,以及打开文件进行修改。此区域提供 Project 窗口中所示结构的精简视图;编辑器窗口帮助我们创建和修改代码。编辑器可能因当前文件类型而异。例如,查看布局文件时,该编辑器会显示布局编辑器;工具窗口栏在 IDE 窗口外部运行,并包含可用于展开或折叠各个工具窗口的按钮;工具窗口可让我们访问特定任务,例如项目管理、搜索和版本控制等。您可以展开和折叠这些窗口;状态栏显示项目和 IDE 本身的状态以及任何警告或消息。

第一个 Android Studio 应用

本节课程主要给大家介绍下 Android Studio 开发应用的基本流程及带领大家创建一个最简单的应用实例。

Android Studio 键盘快捷键

本节课程主要给大家整理介绍下 Android Studio 中的键盘快捷键,熟练掌握使用键盘快捷键才能在开发过程中事半功倍。

Android 手势处理

作为忠实的 Android 系统用户,你应该会经常用到各种手势:点击、长按、双击、缩放、滑动、拖拽、返回等等,可以说丰富的手势可以让用户更加简洁方便的使用 App,甚至直接影响到 App 的使用体验。这些手势都是系统为我们提供的操作方式,今天来一起看看如何捕捉用户的手势输入。

Android 系统背景及结构概述

谷歌 Android 系统

2. Android Studio 的特色功能

Android Studio 主要的特色功能包括智能代码编辑器、布局编辑器、性能分析器、APK分析器、模拟器。

4. 创建第一个 Kotlin 的 Android 项目

1. 首先打开 Android Studio,在欢迎页面点击 Start a new Android Studio project 或者 File | New | New project。2. 然后选择一个定义应用程序,对于第一个 “Hello world” 应用程序,选择仅显示空白屏幕的 Empty Activity,然后点击 Next。3. 然后输入 Project 的 name 以及 Package Name,选择一个项目存储的位置,默认 AndroidStudio 创建的语言是 Kotlin, 如果你需要 Java 可以选择 Java。最后点击finish即可。4. 然后经过上述步骤一个 Android 项目就创建完毕了,创建好的项目结构如下:5. 注意: 如果项目提示没有配置 Kotlin,可以在项目的 build.gradle 和 app 中的 build.gradle 中手动配置 Kotlin 或者根据 IDE 的提示自动配置 Kotlin。在整个项目 build.gradle 配置 Kotlin 的 gradle 插件:在 app 中的 build.gradle 配置 Kotlin 的 plugin 和依赖:6. 然后,就可以构建和运行 Android 应用程序,在 Android Studio 中构建和运行 Kotlin 应用程序的过程与 Java 完全相同。点击工具栏上的 Run 运行预定义的 app 配置即可。

Android Studio 的布局编辑器

前一小节我们介绍了如何通过 lint 来检查我们的代码,本小结我们学习如何使用 Android Studio 布局编辑器,布局编辑器可以帮助我们完成界面上视图的创建、编辑、预览等。

Android 程序签名打包

在上一章,我们创建了自己的 Android 工程,并成功的在模拟器中运行起来。同时提到,工程目录中有一个 bin 目录,运行之后我们可以在此目录下找到我们的 apk。那么不难想到,我们在点“Run”之后,系统会编译我们的代码,并结合配置文件打出一个 apk。众所周知 apk 是 Android 系统的安装包,在我们编写完代码,打包成 apk 之后,就可以将 apk 发布到应用市场,用户下载 apk 后就可以安装运行了。这一切看似简单但暗藏玄机,我们的 apk 一旦到了纷繁复杂的市场,就需要考虑很多问题。比如如何将你发布的应用和其他开发者发布的应用区分开;如何确认用户下载的 apk 就是官方发布的而不是个人开发者;如何安全的完成应用升级等等一系列的问题。这些问题有些涉及商业,有些涉及系统安全,对于市场稳定性而言都是至关重要的,解决这些问题的,就是本章主角:Android 程序签名打包。大家可能对这个技术比较陌生,接下来我们从 what、why、how 这三个角度让大家对签名打包有一个清晰的认识。

Android Studio 检查改进代码

前一小节我们介绍了如何查找优质的 Android 代码示例,本小结我们学习如何通过 lint 来检查我们的代码,如何发现代码中存在的问题,保证应用能高效稳定的运行。

3.2 从 Android Studio 运行 lint

在 Android Studio 中手动运行 lint 检查,请按如下步骤:在 Android 视图中,打开我们的项目,然后选择要分析的项目、文件夹或文件;从菜单栏中,依次选择 Analyze > Inspect Code;在 Specify Inspection Scope 对话框中,查看设置:在 Inspection profile 下,保留默认配置文件 (Project Default);点击 OK 以运行检查。通过运行 Inspect Code 所生成的 lint 及其他 IDE 检查结果如下图:在左侧窗格树状视图中,通过展开并选择错误类别、类型和问题来查看检查结果;在右侧窗格显示选定错误类别、类型或问题的检查报告,并提供错误的名称和位置。在适用情况下,检查报告会显示问题概要等其他信息,以帮助我们更正问题;在左侧窗格树状视图中,右键点击某个类别、类型或问题,以显示上下文菜单。根据上下文,我们可以执行以下全部或部分操作:跳到源代码、排除和包含选定项、抑制问题、修改设置、管理检查警报和重新运行检查。

Android 列表控件 ListView

在学习了 ScrollView 及 Adapter 两节内容之后,大家应该对 ListView 有了一些基本的了解,它是一个列表样式的 ViewGroup,将若干 item 按行排列。ListView 是一个很基本的控件也是 Android 中最重要的控件之一。它可以帮助我们完成多个 View 的垂直排列并支持滚动显示效果,而它比 ScrollView 更灵活也更易扩展,Adapter 作为 UI 控件和数据源之间的桥梁,会帮我们实现 MVC 模式,所以在实际开发中大多数的列表场景我们会优先考虑使用 ListView 来实现(目前 Google 推出了新的更强大的列表控件——RecyclerView,不过基本原理和 ListView 类似)。

1.2 从 Android 模拟器上获取

在 Android 模拟器中,我们可以使用 Extended controls 窗口中的 Bug report 功能:点击模拟器面板中的 More 图标;在 Extended controls 窗口中,选择左侧的 Bug report;此时系统会打开一个屏幕,我们可以在其中查看错误报告详细信息,例如屏幕截图、AVD 配置信息和错误报告日志。我们还可以输入一条包含复制步骤的消息,以便与报告一起保存。等待错误报告完成收集,然后点击 Save Report。

2. Android Studio 各发布版本的区别

从手动检查更新的弹出框中我们可以看到这样的描述 “The latest stable release”,为什么要说是 stable release 呢?因为 Android Studio 存在不同的发布版本,各版本之间有什么区别呢?

3. Android Stuido 与同类型的开发工具对比

在 Android 应用开发方面使用广泛度比较高的应该是下满这 3 款集成开发环境 ( IDE )。

4. 使用 Android 接口操作数据库

如果你对数据库并不是很熟悉或者不想用 SQL 来操作数据库,同样可以采用纯 Java 接口来操作。在 Android 中数据库的内容用 ContentValues 表示,所以我们的增删改查其实都是对某个 ContentValues 进行操作。

3. 例子三(Kotlin 实现 Android 中的自定义 View)

使用 Kotlin 实现 Android 中自定义圆形或圆角图片,需要支持以下功能:支持图片圆形的定制化;支持图片圆角以及每个角的X,Y方向值的定制化;支持形状边框宽度颜色的定制化;支持图片圆角或者圆形右上角消息圆点定制化(一般用于圆形或者圆角头像)。

2. Android 项目中组件化运用

我们下面来具体看下 Android 项目中我们怎么来实施组件化。我们知道我们发布市场肯定是要打一个全功能的 apk 包,也就是发布市场时是需要集成化的打包模式,而我们开发过程中是需要组件化模式的,所以我们需要一个开关来控制组件化和集成化打包模式。我们各个模块都会有编译工具版本,SDK 的版本,support 库的版本号等。我们可以将这些抽离出来,单独建立一个 Gradle 文件来配置这些全局变量。

2. 创建和管理虚拟设备 (AVD)

Android 虚拟设备 (AVD) 是一种配置,用于定义在 Android 模拟器中模拟的 Android 手机、平板电脑、Wear OS、Android TV 或 Android Automotive OS 设备的特性。虚拟设备的创建和管理等都通过 AVD Manager 来操作。

直播
查看课程详情
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号