为了账号安全,请及时绑定邮箱和手机立即绑定
4.2 配置项目

下一步就是配置一些设置并创建新项目。主要的配置有如下这些:指定项目名称;指定软件包名称。默认情况下,此软件包名称也会成为你的应用 ID。此名称以后可以更改;指定项目的本地保存位置;选择你希望 Android Studio 在为新项目创建示例代码时使用的语言;选择你希望应用支持的最低 API 级别。当你选择较低的 API 级别时,你的应用可以依赖的现代 Android API 会更少,但能够运行应用的 Android 设备的比例会更大。当选择较高的 API 级别时,情况正好相反;如果你选择的项目类型通过 Google Play 免安装体验支持免安装体验,并且你希望为该应用启用这种体验,请选中 This project will support instant apps 旁边的复选框;如果你希望项目默认使用 AndroidX 库,请选中 Use AndroidX artifacts 旁边的复选框。AndroidX 库是 Android 支持库的改进替换;准备好创建项目后,点击 Finish。至此,我们新建完成了一个 Android 项目。

Android 真机的使用

在前几小节中我们学习了使用模拟器,本节课程我们学习如何使用真机测试应用。任何一款应用务必始终先在真机设备上测试后再正式向用户发布。

5.9 命令行工具

本部分会学习 Android SDK 包中的命令行工具。虽然很多工作我们都能在 Android Studio 中直接完成,但是对命令行工具的学习和使用会加深我们的理解,而且部分工具仅提供了命令行版本。

2.2 安装特定版本的 NDK

如果我们的项目需要一个或多个特定版本的 NDK,我们可以下载并配置特定版本。这样做有助于确保在每个项目都依赖于特定版本的 NDK 的情况下,项目之间的编译可重现。Android Studio 会将所有版本的 NDK 安装到 android-sdk/ndk/ 目录中。要安装特定版本的 NDK,请执行以下操作:打开项目后,依次点击 Tools > SDK Manager。点击 SDK Tools 标签页。选中 Show Package Details 复选框。选中 NDK (Side by side) 复选框及其下方与我们要安装的 NDK 版本对应的复选框。Android Studio 会将所有版本的 NDK 安装到 android-sdk/ndk/ 目录中。点击 OK。此时系统会显示一个对话框,告诉我们 NDK 软件包占用了多少空间。点击 OK。安装完成后,点击 Finish。

1.1 硬件配置要求

Android 模拟器除了需要满足 Android Studio 的基本系统要求之外,还需要满足下述其他要求:SDK Tools 26.1.1 或更高版本;64 位处理器;HAXM 6.2.1 或更高版本(建议使用 HAXM 7.2.0 或更高版本)。要在 Windows 和 Linux 上使用硬件加速,还需要满足以下其他要求:在 Windows 或 Linux 上搭载 Intel 处理器:Intel 处理器需要支持 Intel VT-x、Intel EM64T (Intel 64) 和 Execute Disable (XD) Bit 功能;在 Linux 上搭载 AMD 处理器:AMD 处理器需要支持 AMD 虚拟化 (AMD-V) 和 Supplemental Streaming SIMD Extensions 3 (SSSE3);在 Windows 上搭载 AMD 处理器:需要 Android Studio 3.2 或更高版本以及 2018 年 4 月发布的支持 Windows Hypervisor Platform (WHPX) 功能的 Windows 10 或更高版本。如需与 Android 8.1(API 级别 27)及更高版本的系统映像配合使用,连接的摄像头必须能够捕获 720p 的帧。

3.3 启用 Run 回退机制

在我们点击 Apply Changes and Restart Activity 或 Apply Code Changes 后,Android Studio 会构建新 APK 并确定是否可以应用更改。如果无法应用更改并且会导致 Apply Changes 失败,则 Android Studio 会改为提示我们重新运行您的应用。不过,如果我们不想在每次发生这种情况时都收到提示,则可以将 Android Studio 配置为在无法应用更改时自动重新运行您的应用。要启用此行为,请按以下步骤操作:打开 Settings 或 Preferences 对话框:在 Windows 或 Linux 上,从菜单栏中依次选择 File > Settings。在 macOS 上,从菜单栏中依次选择 Android Studio > Preferences。依次转到 Build, Execution, Deployment > Deployment。选中复选框以针对任一 Apply Changes 操作启用自动 Run fallback。点击 OK。

5.3 编写应用

本部分会学习如何高效的使用 Android Studio 来编写代码。如何高效的编排界面布局。如何合理的管理项目资源。开发 Android 应用就是编排界面、编写代码的过程。

2. 组件代码模板

我们除了自己从头开始写代码之外,Android Studio 还为我们提供了众多遵循 Android 设计与开发最佳做法的代码模板,我们可以使用这些模板创建新的应用模块、各种 Activity 或者其他特定的 Android 项目组件。我们要使用模板添加 Android 项目组件,需要将项目切换到 Project 视图,右键点击想要在其中添加新组件的文件夹,然后选择 New。根据点击的文件夹可以添加的组件,我们会看到一个模板类型列表:Tips:从上图可以看到模板类型包括:AIDL、Activity、Service、Widget 等等。在选择想要添加的模板时,对应的向导窗口将出现并要求提供组件的配置信息,例如名称。在我们输入配置信息后,Android Studio 将为新组件创建并打开文件,它还会运行 Gradle 构建来同步我们的项目。

5. 小结

本章主要介绍一种比 AVD 性能更好甚至可以跟真机媲美的 Android 模拟器,更适用于一些大型项目的调试工作。好了,到这里你已经完成了学前准备,下面就可以进行项目开发了,下一章我们将一起创建第一个 Android 项目,加油!

2. Activity 的生命周期

如果你学习过 C/C++ 或者 Java 开发应该很熟悉main()函数,没错,一切代码都是从main()函数开始的。在 Android 中也有类似的概念,每个 Android 应用程序都有一个主 Activity(启动 Activity),而其中的onCreate()方法就是所有代码的起点。

1. 默认键盘快捷键

Android Studio 为许多常用操作都提供了默认的键盘快捷键。下面按不同的功能模块对默认快捷键进行了归纳整理。Tips:由于 Android Studio 基于 IntelliJ IDEA,因此我们可以在 IntelliJ IDEA 按键映射参考文档中找到其他快捷方式。

2. 下载离线示例代码

如果在线查找示例遇到了网络问题,则我们可以下载示例代码后手动导入到 Android Studio 中。Google 把优质的示例代码都托管到了 GitHub 上,所以我们按如下步骤操作:从 GitHub 上 下载 Google Samples 代码:在 Android Studio 中 Import Project:

3.3 为项目中的项定义配置

Android Studio 可以为 Project 窗口中显示的某些项创建运行/调试配置。如需为项目中的某个项创建运行/调试配置,请按以下步骤操作:在 Android 或 Project 视图中打开一个项目;在 Project 窗口中,右键点击某个可测试项,然后选择 Run 文件名 或 Debug 文件名。Android Studio 会创建一个临时的运行/调试配置并启动我们的应用;从工具栏的 Select Run/Debug Configuration 下拉列表中选择 Save。

数据库:SQLite 的使用

今天来学习另一种比较专业的存储方式——数据库,在 Android 中引入了一个轻量级的数据库框架:SQLite。如果你对数据库非常熟悉,那它可以全面支持数据的 SQL 语言,同时也提供了 Java 接口方便不太熟悉数据库的 Android 工程师使用。

2. 通过界面配置

我们可以使用 Android Studio 界面将 Gradle 关联到外部 CMake 或 ndk-build 项目:从 IDE 左侧打开 Project 窗格,然后选择 Android 视图。右键点击我们想要关联到原生库的模块(例如 app 模块),然后从菜单中选择 Link C++ Project with Gradle。从下拉菜单中,选择 CMake 或 ndk-build。如果选择 CMake,请使用 Project Path 旁的字段为我们的外部 CMake 项目指定 CMakeLists.txt 脚本文件。如果选择 ndk-build,请使用 Project Path 旁的字段为我们的外部 ndk-build 项目指定 Android.mk 脚本文件。如果 Application.mk 文件与我们的 Android.mk 文件位于同一目录下,Android Studio 也会包含此文件。点击 OK。

2.1 TextView 的阴影效果

下面我们加上一些高级属性,可以做出不同寻常的效果:<TextView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:padding="20dp" android:shadowColor="#5919C9" android:shadowDx="20.0" android:shadowDy="20.0" android:shadowRadius="4.5" android:text="跟着超哥学Android" android:textColor="#BECF0B" android:textSize="40sp" />我们在第一个 demo 的基础之上加上了阴影效果,如图:

3.3 如何修改或添加 SDK 工具网站

要管理 Android Studio 用于检查 Android 工具和第三方工具更新的 SDK 网站,请点击 SDK Update Sites 标签。我们可以添加其他提供自有工具的网站,然后从这些网站下载软件包。例如,某个软件提供商可能会为其自有基于 Android 系统的设备提供额外的 API 库。要使用他们的库开发应用,我们可以在 SDK Update Sites 标签中将其 SDK 工具网址添加到 SDK 管理器,以安装他们的 Android SDK 软件包。如果软件提供商在其网站上提供了 SDK 附加项代码库文件,请按照以下步骤将其网站添加到 Android SDK 管理器:点击 SDK Update Sites 标签;点击窗口右侧的 Add 图标 ;输入第三方网站的名称和网址,然后点击 OK;确保已选中 Enabled 列中相应的复选框;点击 OK 完成。此时该网站提供的所有 SDK 软件包都将视情况显示在 SDK Platforms 或 SDK Tools 标签页中。

3.2 Project 视图

要查看项目的实际文件结构(包括在 Android 视图中隐藏的所有文件),就需要使用 Project 视图。在 Project 视图下的项目结构如下:build:包含构建输出;libs:包含专用库;src:包含相应模块在以下子目录中的所有代码和资源文件;androidTest:包含在 Android 设备上运行的插桩测试的代码。如需了解详情,请参阅 Android 测试文档;main:包含“主”源集文件:所有构建变体共享的 Android 代码和资源;AndroidManifest.xml:描述应用及其各个组件的性质;java:包含 Java 代码来源;res:包含应用资源,例如可绘制对象文件、布局文件和界面字符串。详情请参阅应用资源;test:包含在主机 JVM 上运行的本地测试代码;build.gradle(模块):这定义了特定于模块的构建配置;build.gradle(项目):这定义了适用于所有模块的构建配置。了解了项目的结构之后,我们可以动手尝试新建一个 Android 项目了。

4. 小结

本节介绍了 Android UI 中作为鼻祖的两个类,所有可视的 UI 控件都是从 View 继承而来,而这些 View 的排列布局方式则有 ViewGroup 来组合管理,而编写布局可以通过代码或者 XML 的两种形式,后者更加简洁直观。其实大家在实际的开发中,很少会去直接使用这两个类, Android 源码已经为我们提供了各式各样丰富的控件和布局,几乎可以应对我们日常开发的大多数场景,在后面的课程我们会学习到很多 Android 提供的优秀的控件和布局类,大家务必要在教程中学好 Android 原生的控件、布局,为今后学习编写自定义 View 打下坚实的基础。

2.1 打开 Translations Editor

从 Android 视图打开在左侧的 Project > Android 面板中,依次选择 ModuleName > res > values;右键点击 strings.xml 文件,然后选择 Open Translations Editor。从 strings.xml 中打开我们可以从任一 strings.xml 文件中访问 Translations Editor。在左侧的 Project > Android 面板中,依次选择 ModuleName > res > values;双击 strings.xml 将其打开,以供修改;在 strings.xml 中,点击右上角的 Open editor 链接。从 Design Editor 中打开我们可以从 Layout Editor 的 Design Editor 中打开 Translations Editor,以修改默认译文,使其更好地匹配我们的布局。在左侧的 Project > Android 面板中,依次选择 ModuleName > res > layout;双击 activity_main.xml 以将其打开进行修改;点击左下角的 Design 标签页以显示 Design Editor;在 Design Editor 中,选择 Language 下拉列表;选择 Edit Translations 图标 。

1.1 关于 Gradle 封装容器

在命令行中构建应用,我们使用的是 Gradle 封装容器,它可作为 Windows 的批处理文件 (gradlew.bat) 和 Linux 与 Mac 的 shell 脚本 (gradlew) 使用,而且我们可以从使用 Android Studio 创建的每个项目的根目录启动该工具。我们可以使用 Gradle 封装容器命令行工具执行 Android 项目可用的所有构建任务。要使用封装容器运行任务,请在终端窗口中(在 Android Studio 中,依次选择 View > Tool Windows > Terminal)使用下列命令之一:在 Windows 上:gradlew task-name在 Mac 或 Linux 上:./gradlew task-nameTips:task-name是代指具体的 Gradle 任务名称。如需查看项目的所有可用构建任务的列表,请执行如下命令:gradlew tasks输出结果如下:------------------------------------------------------------Tasks runnable from root project------------------------------------------------------------Android tasks-------------androidDependencies - Displays the Android dependencies of the project.signingReport - Displays the signing info for the base and test modulessourceSets - Prints out all the source sets defined in this project.Build tasks-----------assemble - Assemble main outputs for all the variants.assembleAndroidTest - Assembles all the Test applications.build - Assembles and tests this project.buildDependents - Assembles and tests this project and all projects that depend on it.buildNeeded - Assembles and tests this project and all projects it depends on.bundle - Assemble bundles for all the variants.clean - Deletes the build directory.cleanBuildCache - Deletes the build cache directory.compileDebugAndroidTestSourcescompileDebugSourcescompileDebugUnitTestSourcescompileReleaseSourcescompileReleaseUnitTestSourcesextractDebugAnnotations - Extracts Android annotations for the debug variant into the archive fileextractReleaseAnnotations - Extracts Android annotations for the release variant into the archive fileBuild Setup tasks-----------------init - Initializes a new Gradle build.wrapper - Generates Gradle wrapper files.Cleanup tasks-------------lintFix - Runs lint on all variants and applies any safe suggestions to the source code.Help tasks----------buildEnvironment - Displays all buildscript dependencies declared in root project 'FirstApp'.components - Displays the components produced by root project 'FirstApp'. [incubating]dependencies - Displays all dependencies declared in root project 'FirstApp'.dependencyInsight - Displays the insight into a specific dependency in root project 'FirstApp'.dependentComponents - Displays the dependent components of components in root project 'FirstApp'. [incubating]help - Displays a help message.model - Displays the configuration model of root project 'FirstApp'. [incubating]projects - Displays the sub-projects of root project 'FirstApp'.properties - Displays the properties of root project 'FirstApp'.tasks - Displays the tasks runnable from root project 'FirstApp' (some of the displayed tasks may belong to subprojects).Install tasks-------------installDebug - Installs the Debug build.installDebugAndroidTest - Installs the android (on device) tests for the Debug build.uninstallAll - Uninstall all applications.uninstallDebug - Uninstalls the Debug build.uninstallDebugAndroidTest - Uninstalls the android (on device) tests for the Debug build.uninstallRelease - Uninstalls the Release build.Verification tasks------------------check - Runs all checks.connectedAndroidTest - Installs and runs instrumentation tests for all flavors on connected devices.connectedCheck - Runs all device checks on currently connected devices.connectedDebugAndroidTest - Installs and runs the tests for debug on connected devices.deviceAndroidTest - Installs and runs instrumentation tests using all Device Providers.deviceCheck - Runs all device checks using Device Providers and Test Servers.lint - Runs lint on all variants.lintDebug - Runs lint on the Debug build.lintRelease - Runs lint on the Release build.lintVitalRelease - Runs lint on just the fatal issues in the release build.test - Run unit tests for all variants.testDebugUnitTest - Run unit tests for the debug build.testReleaseUnitTest - Run unit tests for the release build.

2. 结构关系

如本节标题所言,Android 系统中的所有 UI 类都是建立在 View 和 ViewGroup 两个类的基础之上的,所有 View 的子类称为 Widget(控件),所有 ViewGroup 的子类称为 Layout(布局),在 Android 源码中继承关系如下图所示:可以看到,在 Android 的 UI 中,View 是所有类的基类,我们通过实现 View 来完成各种具体的UI展示;而由 View 派生的 ViewGroup 是所有 Layout 的基类,它将各种不同的 View 组合到一起,以下是 View 的组合关系图:

5. 创建 AVD

Android SDK 为我们提供了 Android 模拟器,我们可以很方便的将我们开发的程序随时在模拟器上进行测试,一个 AVD 可以支持硬件配置、系统镜像、屏幕尺寸、外观、SD 卡等,在创建的同时可以制定模拟设备的硬件属性,甚至可以创建多个模拟器同时进行测试。在 Eclipse 菜单栏中依次点击 Windows -> Android visual Device Manager,在弹窗中就可以根据自己的需要创建相应配置的模拟器了。创建完成之后,启动模拟器,接下来就可以像操作手机一样操作模拟器了。

2.1 官方下载地址

Android Studio 安装包的官方下载地址是 https://developer.android.google.cn/studio#downloads

1. 如何创建代码和资源

Android 应用程序概括的说可以分为代码和资源两部分,在 Android Studio 中把项目代码在 Project 视图中展开,可以看到在 main 层级下面有 java 和 res 两个目录,java 目录内存放的是项目代码,res 目录内存放的是项目资源。我们就分别学习下如何创建代码和如何添加资源。

3.2 安装驱动程序

下载 USB 驱动程序后,请按照下面的说明操作,根据 Windows 版本以及是首次安装还是升级现有驱动程序,安装或升级驱动程序。Windows 10要在 Windows 10 系统上首次安装 Android USB 驱动程序,请执行以下操作:将 Android 设备连接到计算机的 USB 端口;在 Windows 资源管理器中,打开计算机管理;在计算机管理左侧窗格中,选择设备管理器;在设备管理器右侧窗格中,找到并展开便携式设备或其他设备,具体取决于看到的是哪一项;右键点击已连接设备的名称,然后选择更新驱动程序软件;在硬件更新向导中,选择浏览计算机以查找驱动程序软件,然后点击下一步;点击浏览,然后找到 USB 驱动程序文件夹。例如,Google USB 驱动程序位于 android_sdk\extras\google\usb_driver\;点击下一步以安装驱动程序。Windows 7要在 Windows 7 系统上首次安装 Android USB 驱动程序,请执行以下操作:将 Android 设备连接到计算机的 USB 端口;从桌面上或 Windows 资源管理器中右键点击计算机,然后选择管理;在左侧窗格中选择设备;在右侧窗格中找到并展开其他设备;右键点击相应的设备名称(如 Xiaomi),然后选择更新驱动程序软件。这将启动硬件更新向导;选择浏览计算机以查找驱动程序软件,然后点击下一步;点击浏览,然后找到 USB 驱动程序文件夹。(Google USB 驱动程序位于 android_sdk\extras\google\usb_driver\。)点击下一步以安装驱动程序。升级 Android USB 驱动程序要在 Windows 7 及更高版本的系统上使用新驱动程序升级现有的 Android USB 驱动程序,请执行以下操作:将 Android 设备连接到计算机的 USB 端口;从桌面上或 Windows 资源管理器中右键点击计算机,然后选择管理;在“计算机管理”窗口的左侧窗格中选择设备管理器;在右侧窗格中找到并展开 Android 手机;右键点击 Android Composite ADB Interface,然后选择更新驱动程序。这将启动硬件更新向导;选择从列表或特定位置安装,然后点击下一步;选择在这些位置搜索最佳驱动程序,取消选中搜索可移动介质,并选中在搜索中包含此位置;点击浏览,然后找到 USB 驱动程序文件夹。(Google USB 驱动程序位于 android_sdk\extras\google\usb_driver\。);点击下一步以升级驱动程序。

2.3 什么是 uni-app原生插件?

原生插件开发就是用原生语言进行插件开发,对于 uni-app 原生插件来说,原生语言包括 android 或者 ios 代码。我们使用 android、 ios 代码开发的插件,可以在 uni-app 框架中通过 vue 代码调用,这就是 uni-app原生插件了。

1.1 Option Menu

选项文菜单是最常用的 Menu,可以直接通过 Android 的“菜单键”唤出,通常直接为当前 Activity 服务。在高版本的 Android 系统上是从右上角弹出,可以在里面放置一些常用的功能入口或者设置项等等高频选项。

2.3 如何创建

调用 Toast 的静态方法makeText:传入Context、字符串文案、显示时长即可创建一个 Toast。为了避免内存泄露,这里的 Context 建议使用getApplicationContext()来获取 App 的 Context 传入,如下:Toast toast = Toast.makeText(getApplicationContext(),"IMOOC Android Study",Toast.LENGTH_LONG);调用 Toast 的show()方法toast.show();我们可以将以上两句串联起来,如下:Toast.makeText(getApplicationContext(),"IMOOC Android Study",Toast.LENGTH_LONG).show();

6. 课程学前基础

这门课程要求学习者能进行基本的计算机操作,了解命令行则更佳;这门课程适合零基础学习 Android 应用开发,有 Java 语言基础则更佳;这门课程同样适用于希望了解更多 Android Studio 高级使用技巧的开发者。

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

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

帮助反馈 APP下载

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

公众号

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