android
文章平均质量分 76
android 技巧和经验
曹纪乾
嵌入式开发,和一些应用的开发
展开
-
Android 系列 1.1了解Android应用程序架构
1.1 Understanding the Android Application Architecture1.1了解Android应用程序架构讨论Android应用程序包含一个或多个以下Java组件组件:•活动包括一个屏幕的可视组件(“视图”)以及可以响应该屏幕上的用户事件的代码。几乎每一个应用程序至少有一个Activity类。•服务是没有用户界面的组件,可以运行原创 2017-01-05 14:19:51 · 547 阅读 · 0 评论 -
Android 系列 1.2了解Android活动生命周期
1.2了解Android活动生命周期问题Android应用没有“主”方法; 你需要了解他们如何开始,以及他们停止或停止。解决类android.app.Activity提供了许多明确定义的生命周期方法,当应用程序启动,挂起,重新启动等时调用,以及一个可以调用来将活动标记为完成的方法。讨论您的Android应用程序在其自己的Unix进程中运行,因此通常不能直接影响任何其原创 2017-01-05 14:24:06 · 443 阅读 · 0 评论 -
Android 系列 1.3了解Android版本
1.3了解Android版本问题你不断听到冰淇淋三明治,果冻豆,棒棒糖和沼泽低,需要知道这一切意味着什么。讨论Android在其一生中经历了许多版本。每个版本都有一个版本号,一个代码名称和一个API级别。版本号是一个常规的版本系统,如2.1,3.0,4.0,4.1,5.0,6.0等。当版本的第一个数字改变时,这是一个很大的问题,许多新的API;当第二个数字改变时,它比革命更原创 2017-01-05 14:26:53 · 609 阅读 · 0 评论 -
Android 系列 1.4学习Java语言
1.4学习Java语言伊恩达尔文问题Android应用程序是用Java编程语言编写的,verted到Android自己的类文件格式,DEX。如果你不知道如何编程在Java中,你会发现很难编写Android应用程序。解许多资源可用于学习Java。大多数人会教你你什么需要,但也将提到一些不可用于Android的API类devel-opment。避免在任何资源中讨论左原创 2017-01-05 14:29:05 · 425 阅读 · 0 评论 -
Android 系列 1.5从命令行创建“Hello,World”应用程序
1.5从命令行创建“Hello,World”应用程序问题您想要创建一个新的Android项目,而不使用任何IDE或插件。解使用Android软件开发工具包(SDK)工具android与创建项目参数和一些其他参数来配置项目。讨论除了作为平台的名称,android也是用于创建,更新和管理项目的命令行工具的名称。 您可以导航到android-sdk-n原创 2017-01-05 14:35:43 · 597 阅读 · 0 评论 -
Android 系列 1.6使用Apache Maven创建“Hello,World”应用程序
1.6使用Apache Maven创建“Hello,World”应用程序问题上面的配方使用Android来创建一个可以使用Apache Ant构建的项目。然而,由于Maven的依赖管理,许多组织正在移动或已经从Ant迁移到Maven。事实上,Maven几乎肯定是Java环境中使用最广泛的构建工具。 Ant不会自己处理依赖;虽然这可以嫁接(使用Apache Ivy),Maven的原创 2017-01-05 14:39:13 · 531 阅读 · 0 评论 -
Android 系列 1.7选择Android开发的IDE
1.7选择Android开发的IDE问题使用构建工具是可以的,但用纯文本编辑器编码太慢,不能作为您的常规开发流。您想要选择要用于Android项目的IDE:Android Studio,Eclipse或“其他”。解称重每个的利弊,然后掷骰子。在一个合理大小的项目上尝试每个。讨论而在MS-Windows世界中有一个单一的IDE占主导地位,而在Andro原创 2017-01-05 14:44:43 · 3542 阅读 · 0 评论 -
Android 系列 1.8在Android Studio 2中使用Java 8功能
1.8在Android Studio 2中使用Java 8功能问题您正在使用Java 8,当前版本的Java在2015年,在您的其他工作,并希望在Android中使用它。解启用“Jack”编译器链,并使用Android Studio中支持的Java 8子集。讨论如果你首先是一个Java开发人员,你可能认为Android将完全支持当前版本的Java是公理的。你会错了。原创 2017-01-05 14:48:15 · 3097 阅读 · 0 评论 -
Android 系列 1.9引用库以实现外部
1.9引用库以实现外部功能问题您需要在源代码中引用外部库。解有几个解决方案:•使用Maven或Gradle构建项目,只列出一个Maven或Gradle依赖项,并且构建工具将下载并验证它;•依赖于模块(Studio)或图书馆项目;•(最后手段)下载所需的库的JAR文件,并将其添加到项目中。讨论我们在这里描述了下载和将JAR文件包括到您的项目中的各种机制。我原创 2017-01-06 09:09:22 · 397 阅读 · 0 评论 -
Android 系列 1.10通过兼容性库在旧设备上使用新功能
1.10通过兼容性库在旧设备上使用新功能伊恩达尔文问题您想要使用Android的新功能,但让您的应用程序在旧版本上正确运行。解使用兼容性库 - 这就是他们在那里。讨论Android是一个奇妙的系统为用户 - 新功能添加了每个版本。但有一个问题 - 旧的设备没有得到最新版本的Android。低端制造商(低预算设备)可能不会对其设备发布更新。在高端(所谓的“旗舰”设备),用原创 2017-01-06 09:12:33 · 440 阅读 · 0 评论 -
Android 系列 1.11使用SDK示例帮助避免不知所措
1.11使用SDK示例帮助避免不知所措问题有时,编写一些功能是很困难的,特别是当文档是粗略的或者没有提供任何例子的时候。解查看现有的工作代码将有所帮助。 Android SDK有一些示例程序,你可以挑选它们来看看它们是如何工作的。讨论Android SDK附带了许多示例应用程序,在尝试对某些功能进行编码时非常有用。查看示例代码可以有深刻的见解。安装Android S原创 2017-01-06 09:17:33 · 361 阅读 · 0 评论 -
Android 系列 1.12从模拟器/ Android设备截取屏幕截图/视频
1.12从模拟器/ Android设备截取屏幕截图/视频问题您想要截取在Android设备上运行的应用程序的屏幕截图或视频。解对于屏幕截图,请使用设备的硬件按钮,或Dalvik Debug Monitor Server(DDMS)视图的设备屏幕捕获功能,或adb screencap。 对于视频,请使用adb screenrecord。讨论捕获屏幕截图要使用设备屏幕捕获功原创 2017-01-06 09:22:13 · 1093 阅读 · 0 评论 -
Android 系列 1.13程序:一个简单的CountDownTimer示例
1.13程序:一个简单的CountDownTimer示例问题你想要一个简单的倒计时器,一个程序将倒计时到给定的秒数,直到它达到零。解Android自带一个内置类来构造CountDownTimer。它很容易使用,它的效率,它的工作原理(不用说!)。讨论提供倒计时定时器的步骤如下:1.创建CountDownTimer的子类。这个类的构造函数有两个参数,CountDo原创 2017-01-06 09:25:10 · 372 阅读 · 0 评论 -
Android 系列 1.14程序:Tipster,Android操作系统的提示计算器
1.14程序:Tipster,Android操作系统的提示计算器问题当你和朋友去一家餐馆,并希望分开检查和提示,你可以进行大量的手动计算和分歧。相反,你想使用一个应用程序,让你只需添加提示百分比的总数,除以食客的数量。 Tipster是Android中的一个实现,显示一个完整的应用程序。解这是一个简单的练习,它使用Android中的基本GUI元素,然后将它们与一些简单的计算原创 2017-01-06 09:40:39 · 645 阅读 · 0 评论 -
Android 系列 2设计成功的应用程序
本章是关于编写富有想象力和有用的Android应用程序的设计指南。几个配方描述成功设计的具体方面。本节将列出其他一些。本章的一个目的是解释开发本机Java Android应用程序与在移动设备上提供丰富内容的其他方法的优势。手机应用程序的要求无论其将部署的平台如何,成功交付任何移动手持机应用程序有一些关键要求:•应用程序应易于在设备上安装,删除和更新。•它应该以引人注目,独特和优原创 2017-01-06 09:47:31 · 439 阅读 · 0 评论 -
Android 系列 2.1异常处理
2.1异常处理问题Java有一个定义良好的异常处理机制,但它需要一些时间来学习有效地使用它,而不会使用户或技术支持人。解Java提供了一个Exception层次结构,在正确使用时提供了相当大的灵活性。 Android提供了几种机制,包括对话框和面包,用于通知用户错误情况。 Android开发人员应该熟悉这些机制,并学会有效地使用它们。讨论Java有两类异常(实际上是原创 2017-01-06 09:53:36 · 357 阅读 · 0 评论 -
Android 系列 2.2在运行时请求Android权限
2.2在运行时请求Android权限问题在Android 6及更高版本中,除了在清单中指定它们之外,还必须在运行时检查权限。解“危险”资源是可能影响用户存储的信息或隐私等的资源。要访问受“危险”权限保护的资源,您必须:•检查用户是否在访问资源之前已经授予权限•如果先前未授予权限,则明确请求用户的权限•有另一个操作过程,所以如果未授予权限,应用程序不会崩溃讨论原创 2017-01-06 09:56:34 · 401 阅读 · 0 评论 -
Android 系列 2.3将Android应用程序对象访问为“Singleton”
2.3将Android应用程序对象访问为“Singleton”问题您需要从Android应用中访问“全局”数据。解最好的解决方案是将android.app.Application子类化,并将其视为具有静态访问器的单例。每个Android应用程序保证在应用程序的生命周期只有一个android.app.Application实例。如果你选择子类化android.app.Applicat原创 2017-01-06 09:59:34 · 373 阅读 · 0 评论 -
Android 系列 2.4用户旋转设备时保留数据
2.4用户旋转设备时保留数据问题当用户旋转设备时,Android通常会销毁并重新创建当前活动。您希望在此周期中保留一些数据,但活动中的所有字段都会丢失。解有几种方法。如果所有数据都包含原始类型,包含String s或Serializable,则可以将其保存在传递的Bundle中的onSaveInstanceState()中。另一个解决方案允许您返回一个任意对象。您只需要覆盖您的原创 2017-01-06 10:02:29 · 408 阅读 · 0 评论 -
Android 系列 2.5监控Android设备的电池电量
2.5监控Android设备的电池电量问题您想要检测Android设备上的电池电量,以便在电池电量低于某个阈值时通知用户,从而避免意外的意外。解接收在电池状态改变时发送的广播消息的广播接收器可以识别电池电量并且可以向用户发出警报。讨论有时,当Android设备的电池电量低于某个限制时,我们需要向用户显示提醒。 例2-4中的代码设置广播内容每当电池电平改变时发送,原创 2017-01-06 10:04:16 · 637 阅读 · 0 评论 -
Android 系列 2.6在Android中创建Splash屏幕
2.6在Android中创建Splash屏幕问题您想创建一个启动屏幕,将在加载应用程序时显示。解您可以将启动屏幕构建为活动或对话框。由于它的目的是在几秒钟内完成,它可以在短时间间隔过去之后或点击启动屏幕中的按钮时被关闭。讨论闪屏是在PC时代发明的,最初作为一个掩盖为慢的GUI构建,当电脑慢时。供应商保留他们的品牌。但在移动世界中,最长的应用程序启动时间可能不到一秒钟原创 2017-01-06 10:09:20 · 612 阅读 · 0 评论 -
Android 系列 2.7设计各种APP
2.7设计 会议/兵营/黑客马拉松/企业机构 (Conference/Camp/Hackathon/Institution)应用程序问题你想设计一个应用程序,用于在会议,国际研讨会网络(BarCamp 是一种国际研讨会网络,此类研讨会是开放、由参与者相互分享的工作坊式会议,议程内容由参加者提供,焦点通常放在发展初期的网际应用程式、相关开放源代码技术、社交协定思维,以及开放资料格式原创 2017-01-06 10:15:11 · 399 阅读 · 0 评论 -
Android 系列 2.8在Android应用程序中使用Google Analytics(分析)
2.8在Android应用程序中使用Google Analytics(分析)问题开发人员通常希望根据用户使用的功能来跟踪他们的应用程序。如何确定应用程式使用者最常使用的功能?解您可以使用Google Analytics(分析)根据定义的标准来跟踪应用,类似于网站跟踪机制。讨论在我们的应用中使用Google Analytics(分析)之前,我们需要一个分析帐户和Googl原创 2017-01-06 10:19:32 · 980 阅读 · 0 评论 -
Android 系列 2.9设置首次运行首选项
2.9设置首次运行首选项问题您有一个匿名收集应用使用情况数据的应用,因此您有义务让他们第一次运行您的应用时注意到这一点。解使用共享首选项作为持久存储来存储值,该值仅更新一次。每次应用程序启动时,它将在首选项中检查此值。如果值已设置(可用),则不是应用程序的第一次运行;否则为第一次运行。讨论您可以使用Android框架的Application类来管理应用程序的生命周期原创 2017-01-06 10:27:43 · 504 阅读 · 0 评论 -
Android 系列 2.10格式化显示的时间和日期
2.10格式化显示的时间和日期问题您希望以不同的标准格式显示时间和日期。解DateFormat类提供了以自定义格式格式化时间和日期的API。使用这些API需要最少的努力。讨论示例2-13添加了五个不同的TextView,以不同的格式显示时间和日期。实施例2-13。 TextView布局<LinearLayout xmlns:android="http:原创 2017-01-06 10:30:30 · 923 阅读 · 0 评论 -
Android 系列 2.11使用Java 8 java.time API简化日期/时间计算
2.11使用Java 8 java.time API简化日期/时间计算问题你听说过,包含在Java SE 8中的JSR-310日期/时间API简化了日期和时间计算,并且希望在Android中使用它。解因为即使在Android Nougat中,Android也没有完全符合JDK8的Java标准,尽管是“基于”OpenJDK 8,你必须使用第三方库,如JSR-310“backp原创 2017-01-06 10:33:39 · 1468 阅读 · 0 评论 -
Android 系列 2.12使用KeyListener控制输入
2.12使用KeyListener控制输入问题您的应用程序包含要在其中限制用户仅输入数字的文本框; 此外,在某些情况下,您只希望允许使用正数,整数或日期。解Android提供了KeyListener类来帮助您限制用户只输入数字/正数/整数/正整数等等。讨论Android.text.method包包含一个KeyListener接口,以及一些类,例如DigitsKeyL原创 2017-01-06 10:37:00 · 2678 阅读 · 0 评论 -
Android 系列 2.13备份Android应用程序数据
2.13备份Android应用程序数据问题当用户执行出厂重置或转换为新的Android设备时,应用程序丢失存储的数据或应用程序设置。解Android的备份管理器有助于在重新安装应用程序时自动还原备份数据或应用程序设置。讨论Android的备份管理器基本上以两种模式运行,即备份和恢复。在备份操作期间,备份管理器(BackupManager类)向应用程序查询备份数据原创 2017-01-06 10:42:29 · 1107 阅读 · 0 评论 -
Android 系列 2.14使用提示而不是工具提示
2.14使用提示而不是工具提示问题Android设备可以有小屏幕,所以可能没有空间的帮助文本,并且工具提示不是平台的一部分。解Android为View提供了hint属性。讨论有时输入字段需要澄清关于应输入的值。例如,要求物料数量的库存订购应用可能需要陈述最小订单尺寸。在桌面程序中,使用大屏幕和鼠标,可以以工具提示(当鼠标在其上移动时在字段上弹出标签)的形式显示额外的原创 2017-01-07 09:23:08 · 290 阅读 · 0 评论 -
Android 系列 3测试APP
“早期测试和经常测试”是测试倡导者中的常见问题。正如所有重要的问题一样,“如果你没有测试,你怎么知道你的代码工作?”有很多类型的测试。单元测试单独检查单独的组件(“单元”,例如方法)(不打到网络或数据库),而集成测试测试整个系统,或至少大量的。 JUnit和TestNG是Java的领先单元测试框架。 Mock对象用于需要与其他组件交互的地方;有几个好的嘲笑框架的Java。 Android提供了许多原创 2017-01-07 09:23:43 · 473 阅读 · 0 评论 -
Android 系列 3.1设置Android虚拟设备(AVD)进行应用程序测试
3.1设置Android虚拟设备(AVD)进行应用程序测试问题成功的应用必须在各种Android设备和版本上运行,因此您需要在各种设备上进行测试。解使用Android SDK的设备仿真工具包配置设备和操作系统的组合。对各种组合进行测试可减少与设备硬件差异相关的问题。讨论Android设备制造覆盖广泛的市场,从低成本到高规格和高价值。 Android也在市场上已经有几原创 2017-01-07 09:23:59 · 2378 阅读 · 0 评论 -
Android 系列 3.2在大量不同设备上进行云测试
Android 系列 3.2在大量不同设备上进行云测试问题您需要在各种设备上测试您的应用。解使用几种基于网络或基于云的应用测试服务之一。讨论当Android年轻时,拥有每种类型的设备可能是可行的,以便能够说你已经测试了它的一切。我有六个Android设备,其中大多数是淘汰的,为此目的。然而今天有数百个不同的设备要测试,有些有两个或三个不同的操作系统版本,不同的单元无线电,等原创 2017-01-09 09:22:07 · 343 阅读 · 0 评论 -
Android 系列 3.3使用Eclipse和JUnit测试
Android 系列 3.3使用Eclipse和JUnit测试问题您需要创建和使用一个新的Eclipse测试项目来测试您的Android应用程序。解以下是创建和使用测试项目的方法:1.在Eclipse中创建与Android应用程序项目相关联的新Android项目。2.使用必要的行来配置测试项目的AndroidManifest.xml文件,以测试您的Android应用程序原创 2017-01-09 09:26:15 · 492 阅读 · 0 评论 -
Android 系列 3.4使用Android Studio和JUnit进行测试
3.4使用Android Studio和JUnit进行测试伊恩达尔文问题您想要使用JUnit来测试基于Android Studio的应用程序。解对于独立单元测试,请使用“test”文件夹;对于完整的Android单元测试,使用“androidTest”文件夹。讨论为了本练习的目的,我们将创建一个新的Android Studio项目(参见Recipe 1.9)。将项目命名原创 2017-01-09 09:32:07 · 1709 阅读 · 0 评论 -
Android 系列 3.5使用Robolectric和JUnit测试4
3.5使用Robolectric和JUnit测试4问题你喜欢单元测试,但Android的原始测试框架是基于古老的Android 3.8,它运行在模拟器,所以它的速度很慢。解使用Robolectric,JUnit 4测试跑者是快。讨论这些说明是为Eclipse设置的。假设您的“主”项目设置为正常的Android项目,在此项目中创建一个名为例如“test”的文件夹(原创 2017-01-09 09:34:46 · 956 阅读 · 0 评论 -
Android 系列 3.6使用ATSL,Espresso和JUnit测试4
3.6使用ATSL,Espresso和JUnit测试4问题你想使用最新的官方测试软件解使用Android测试支持库的Espresso部分。 Espresso使用JUnit 4像RoboLectric,但仍然要求测试打包并在仿真器或设备上运行。讨论Espresso是一个相对较新的测试框架,旨在将JUnit 4和Hamcrest匹配样式的优势带给Android测试。与上原创 2017-01-09 09:40:08 · 1068 阅读 · 0 评论 -
Android 系列 3.7应用程序崩溃故障排除
3.7应用程序崩溃故障排除问题您的应用程式崩溃,您不确定原因(请参阅图3-21)。解首先查看日志。图3-21。 什么是应用程序崩溃的样子讨论我们可以使用adb logcat命令或Eclipse LogCat窗口来查看我们的AVD日志。 示例3-6显示了如何通过使用adb logcat查看堆栈跟踪来查找故障位置。实例3-6。 该权限拒绝堆栈跟踪E/Data原创 2017-01-09 09:43:51 · 1817 阅读 · 0 评论 -
Android 系列 3.8使用Log.d和LogCat进行调试
3.8使用Log.d和LogCat进行调试问题通常Java代码编译没有错误,但有时运行的应用程序崩溃,给出“强制关闭”(或类似)错误消息。解使用LogCat消息调试代码对于发现自己处于这种情况的开发人员是一个有用的技术。讨论熟悉Java编程的人可能在调试他们的代码时使用了System.out.println语句。类似地,可以通过使用Log.d()方法来调试Andro原创 2017-01-09 09:45:45 · 945 阅读 · 0 评论 -
Android 系列 3.9使用崩溃报告自动获取错误报告
3.9使用崩溃报告自动获取错误报告问题用户不一定在每次您的应用崩溃时都通知您,而当他们这样做时,通常会省略重要的细节。你想要一个服务捕获每一个异常,并详细报告。解有用于报告应用程序崩溃的开源和商业技术。其中一个广泛使用的开源的是ACRA,Android应用崩溃报告。 ACRA提供自己的后端报告工具,但也支持Google文档和许多其他后端。如果您有自己的Java EE服务器,原创 2017-01-09 09:50:54 · 1135 阅读 · 0 评论 -
Android 系列 3.10使用本地运行时应用程序日志来分析字段错误或情境
3.10使用本地运行时应用程序日志来分析字段错误或情境问题用户报告了你的应用程序,你不认为应该发生的事情,但现在的发布模式应用程序是在市场上,你没有办法找出在用户的环境中发生了什么,错误报告最终在一个“不能再现”的场景。解LogCat输出是伟大的,尽管它是,但更长期的日志记录机制将在某些情况下更有用。为您的应用程序设计一个内置的机制,在这种情况下提供额外的洞察力。您知道应用原创 2017-01-09 09:55:45 · 561 阅读 · 0 评论