android初学者

更新:2020年1月。

Android Studio提供了丰富的内置开发工具调色板,以及更丰富的插件生态系统。 本系列的前三篇文章重点介绍如何使用Android Studio 安装和设置以及编码和运行一个简单的移动应用程序。 现在,您将熟悉一些更高级的工具:三个内置工具和三个插件,用于调试和提高Android应用程序代码的质量和生产率。

本文介绍了适用于Android Studio的以下工具:

内置调试工具

  • Logcat
  • 除错
  • 皮棉

用于提高开发人员生产力的插件

  • 亚行理念
  • 科多塔
  • Lombok插件

Android Studio 3.5的新功能

在最新版本的Android Studio中查找所需内容 ,包括对Kotlin的支持以及对内存管理和UI响应能力的改进。

记录和调试Android应用

越野车应用是驱赶潜在客户的肯定方法。 Logcat和Debug是Android Studio内置的两个工具,可用于识别和修复Android代码中的错误。

记录Android:Logcat

您可能不需要或不希望为每个“笨拙”的情况提供完善的调试器。 在某些情况下,记录并纠正某些变量的值就足够了。 Android Studio的Logcat非常适合此任务。

Logcat是一个命令行工具(集成到Android Debug Bridge-ADB中 ),可转储系统消息日志 ,以帮助您查找和修复代码中的问题。 消息包括有关设备何时引发错误的堆栈跟踪,并记录您有意嵌入android.util.Log类的消息。 Logcat非常有用,它已直接集成到Android Studio中,您可以在其中从“ 视图”菜单或工具窗口栏访问它。

杰夫·弗里森

图1. Logcat窗口显示了带有日期和时间标记的系统消息的列表(单击放大)

Logcat窗口分为下拉列表和其他控件的水平行,其后是消息区域。 从左到右,控件是:

  • 标识已连接设备和仿真器的下拉列表。 (参见图1。)
  • 一个下拉列表,用于标识所选设备上已安装的APK软件包。
  • 日志记录级别的下拉列表:
    • 详细:显示所有消息。
    • 调试:显示仅在开发期间有用的调试日志消息,以及下拉列表中较低的消息级别。
    • 信息:显示常规使用的预期日志消息,以及下拉列表中较低的消息级别。
    • 警告:显示尚未出错的可能问题,以及下拉列表中较低的消息级别。
    • 错误:显示引起错误的问题-引发异常,以及声明消息级别。
    • 断言:显示开发人员期望永远不会发生的问题。
  • 搜索栏,其中唯一出现的消息是包含您在此控件中键入的文本的消息。
  • 一个复选框,可让您在搜索栏中使用正则表达式。 例如,在图1的上下文中,您可以指定SystemClock |。 AlarmManager (即,消息中必须包含任何一个单词)。
  • 用于过滤邮件的下拉列表,包括以下选项:
    • 无过滤器 (默认)将导致显示所选设备的所有消息,而不管所选的APK软件包如何。
    • 仅显示所选应用程序显示所选设备上所选APK软件包的消息,这些消息具有适当的日志级别或更低的日志级别。
    • 编辑过滤器配置可让您创建自定义过滤器。

在源代码中,您可以插入对各种android.util.Log方法的调用以记录消息。 例如,您可以调用public static int i(String tag, String msg)来记录INFO级别的消息,或者调用public static int i(String tag, String msg) public static int w(String tag, String msg)来记录WARN级别的消息。

对于这两种方法,传递给tag的字符串都标识消息的来源(例如,调用此日志记录方法的方法),传递给msg的字符串标识所记录的消息。

另外,您可以调用System.outSystem.errprint()println()方法。 调用System.out方法可完成与log.i()调用相同的log.i() System.err方法的调用与log.w()调用完成的功能相同。

杰夫·弗里森

图2.在示例应用程序的主要活动的onCreate()方法中记录消息(单击放大)

在图2中,仅显示的消息是针对在模拟Nexus 5X设备上运行的示例应用进程的。 此外,这些消息必须包含onCreate并被“仅显示所选应用程序”过滤器接受。

有关Logcat的更多信息

查看Google的“ 使用Logcat编写和查看日志 ”以了解有关Logcat的更多信息。 还要学习android.util.Log类的文档。

调试Android:调试

对于非常简单的应用程序,使用Logcat记录和更正代码是可以的。 对于更复杂的应用程序,这种调试形式可能很乏味。 相反,您将需要一些可以调试应用程序的可执行代码的东西。 Android Studio的内置调试工具提供了许多功能,包括以下功能:

  • 选择要在其上调试应用程序的设备。
  • 在应用程序代码(Java,Kotlin或C / C ++)中设置断点。
  • 在运行时检查变量并评估表达式。

使用此调试工具之前,必须满足一些先决条件:

  1. 如果您的应用程序包含C / C ++源代码,则需要从SDK Manager 安装LLDB (请参见图3)。 幸运的是,本系列的示例应用程序( W2A )不包含C / C ++代码,因此我们可以忽略此先决条件。

    杰夫·弗里森

    图3.选中LLDB复选框,然后单击OK以安装LLDB

  2. 您必须在连接的设备上启用调试 。 但是,如果您使用的是仿真器(本例中使用的是仿真器),则可以忽略此先决条件。 默认情况下,在仿真设备上启用调试。
  3. 您必须运行可调试的构建变体 。 默认情况下,它是为您创建的,因此在很多情况下(包括本示例),您不必担心。

让我们进行一个快速调试会话。

简单的Android调试

假定您在打开Android Studio且示例应用程序( W2A.java )的编辑器窗口打开的情况下,第一步是在public void onCreate(Bundle savedInstanceState)行上设置一个断点。 通过突出显示此行并执行以下操作之一来设置断点:

  • 单击行左侧的装订线区域; 该行应变粉红色。
  • 从“ 运行”菜单中选择“ 切换行断点
  • 同时按CtrlF8

现在,从“ 运行”菜单中选择“ 调试”应用程序 ,或单击工具栏上的相应图标。 如果仿真器未运行,则将看到“ 选择部署目标”对话框。 我选择了Nexus 5X API 15,然后单击“ 确定”

在等待仿真设备上线时,单击工具窗口栏上的“ 调试”按钮以显示“ 调试”窗口。 最终,您应该看到类似于图4的内容。

杰夫·弗里森

图4. Debug窗口显示堆栈框架,当前变量及其当前值,以及更多(单击放大)

调试”窗口提供了用于逐步进入,退出和退出方法等的图标。 图5显示了我们逐步采用一种方法时会发生的情况。

杰夫·弗里森

图5.您可以跨入,进入和退出一种方法

单击相应的图标,然后从“ 运行”菜单中选择“ 跳过 ,或按F8键。 这使我们在逐步执行每个方法调用时可以更深入地研究onCreate()方法。

选择onCreate()方法的带有结束符}的行,然后选择Run to Cursor 您会收到有关该应用程序正在运行的通知。 解锁设备后,您应该会看到示例应用程序的活动窗口。

杰夫·弗里森

图6.单击Debugger选项卡左侧的前三个图标分别以继续,暂停和停止该应用程序(单击以放大)

有关调试的更多信息

查看Google的“ 调试您的应用 ”以了解有关在Android Studio中进行调试的更多信息; 例如,如何使用各种断点。

使用GAPID进行调试

虽然这里没有介绍,但我建议您检出GAPID:Graphics API Debugger ,这是一组调试工具,可让您检查,调整和重播从Android应用程序到图形驱动程序的调用。

用Lint进行代码检查

无论您多么仔细地编写它,源代码都可能包含错误, 样式问题 ,并且可能引用由于某种原因而处于非活动状态的资源。 短绒棉纱是一种工具,可以扫描源代码以查找这些杂物和其他令人讨厌的绒毛的证据,并报告给开发人员。

Lint是用于Android SDK的内置linter。 您可以使用它来查找问题,例如目标API不支持的不赞成使用的元素和API调用。

要在Android Studio中运行Lint,请从“ 分析”菜单中选择“ 检查代码... ”。 这样做会激活“ 指定检查范围”对话框。

杰夫·弗里森

图7.检查整个项目的设置(单击放大)

从对话框中选择所需的范围(在这种情况下为整个项目),然后单击“ 确定”开始检查。 结果将显示在“ 检查结果”窗口中,并按类别进行组织。

杰夫·弗里森

图8.未显示两个拼写错误:Lint不喜欢“ javajeff”(单击放大)

出于其本质,Lint挑选了一些可能会使应用程序代码混乱的绒毛。 一旦发现,就很容易修复图8所示的三个Java警告:只需将androidAnimation声明androidAnimation private并从两个findViewById()方法调用中删除强制类型转换。

有关Lint的更多信息

查看“ 使用lint check改进代码 ”以了解有关在Android Studio中使用Lint的更多信息,并了解Android SDK的独立Lint工具。

安装和使用Android Studio插件

尽管内置工具有其优点,但许多其他工具也可以作为插件使用。 在本节中,我们将研究三个插件,以提高您在Android Studio中的编码效率:

  • 亚行理念
  • 科多塔
  • Lombok插件

Android Studio插件管理器

Android Studio的插件管理器使查找和安装插件非常容易。 通过选择文件激活插件管理器> 设置 ,然后从设置对话框插件

杰夫·弗里森

图9. Settings对话框显示所有已安装的插件(单击放大)

接下来,单击“ 浏览存储库...”以激活“ 浏览存储库”对话框,其中显示了受支持插件的完整列表。 我们将使用此对话框选择第一个插件ADB Idea。

杰夫·弗里森

图10.右侧窗格显示了有关所选插件的详细信息(单击放大)

提升您的Android生产力

代码快捷方式:ADB创意

通过提供对常用ADB命令(例如启动和卸载应用程序)的快速访问, ADB Idea加快了Android的日常开发。

在插件的存储库列表中选择“ ADB Idea ”,然后单击“ 安装”按钮。 Android Studio继续下载并安装插件。 然后,它重新标记“ 安装重新启动Android Studio” 对于每个插件,我必须在单击Restart Android Studio之后重新选择插件,然后再次单击此按钮以重新启动Android Studio。

杰夫·弗里森

图11.安装ADB Idea(单击放大)

安装后,Android Studio允许您从其“ 工具”菜单访问ADB Idea。 选择工具> ADB Idea,然后从出现的弹出菜单中选择适当的命令。

杰夫·弗里森

图12.从弹出菜单中选择适当的ADB命令(单击以放大

选择ADB Restart App之后 ,我在事件日志窗口中以及在我的Amazon Kindle设备上重新启动的应用程序中观察到以下消息。

杰夫·弗里森

图13.每条消息标识应用程序,操作和设备

查找可用的代码:Codota

您可以使用Codota插件来访问Codota搜索引擎 ,该引擎使您可以浏览数百万个公开可用的Java源代码片段,以找到Android编码问题的解决方案。

杰夫·弗里森

图14.安装Codota(单击放大)

在插件的存储库列表中选择Codota ,然后单击“ 安装”按钮。 Android Studio下载并安装了插件后,它将重新标记“ 安装”按钮以重新启动Android Studio 重新启动会激活Codota。

重新启动后,您将遇到“ Codota身份验证”对话框。 单击链接,然后按照说明接收令牌。 然后,将令牌粘贴到上述对话框中,然后单击“执行”

杰夫·弗里森

图15.输入身份验证令牌,然后单击OK(单击放大)

通过使用Android Studio,您可以通过在编辑器窗口中右键单击Java代码并选择“ 获取相关示例”菜单项来访问Codota,如图16所示。

杰夫·弗里森

图16.单击“获取相关示例”(单击放大)

单击此菜单项将导致浏览器显示一个包含相关代码示例的页面。 例如,以下页面提供了与findViewById相关的示例:

杰夫·弗里森

图17.浏览器为突出显示的findViewById文本提供了相关示例(单击放大)

自动生成Java代码:Lombok

Lombok项目提供了一组注释,您可以使用它们来代替样板代码,从而节省了手工编写此代码的时间。

杰夫·弗里森

图18.单击安装以安装Lombok插件(单击以放大)

插件的存储库列表中选择Lombok插件 ,然后单击安装 Android Studio下载并安装插件后,它将提示您重新启动Android Studio 重新启动会激活Lombok插件。

翻译自: https://www.infoworld.com/article/3104595/android-studio-for-beginners-part-4-advanced-tools-and-plugins.html

android初学者

更多相关文章

  1. Android(安卓)Widget 电池插件的开发实现
  2. Android消息机制字典型探究(一)
  3. Android应用程序插件化研究之DexClassLoader
  4. android中按钮随单击变换
  5. 你真的懂Android(安卓)Handler吗?(二)
  6. Android用Broadcast实现EventBus的功能和用法
  7. 仿微信、短信、QQ等消息数目右上角红色小圆球气泡显示(基于Androi
  8. 以php开发服务器后台的android即时通讯app的一种实现思路
  9. Android(安卓)深入讲解Handler机制

随机推荐

  1. MySQL中的乐观锁,悲观锁和MVCC全面解析
  2. 详解MySQL中事务隔离级别的实现原理
  3. MySQL的主键命名策略相关
  4. MySQL配置了双主,是如何避免出现数据回环
  5. win10下mysql 8.0.23 安装配置方法图文教
  6. deepin20.1系统安装MySQL8.0.23(超详细的
  7. MySQL修改字符集的实战教程
  8. MySQL 一则慢日志监控误报的问题分析与解
  9. MySQL慢查询日志的作用和开启
  10. Centos7下安装MySQL8.0.23的步骤(小白入