自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

SAHADEV的专栏

希望我的文章可以促进您的进步

  • 博客(208)
  • 资源 (3)
  • 收藏
  • 关注

翻译 Android官方开发文档Training系列课程中文版:如何避免ANR?

原文地址:http://android.xsoftlab.net/training/articles/perf-anr.html#anr尽管你写代码可能通过了世界上所有的性能测试,但是它还是可能会让人感觉到卡顿。当应用卡的不成样子时,系统会给你弹一个”Application Not Responding”的对话框。在Android中,系统会对那些长时间没有响应的应用采取一些措施:弹出一个对话框告诉用

2016-10-09 10:42:03 3951 1

翻译 Android官方开发文档Training系列课程中文版:线程执行操作之线程间通讯

原文地址:http://android.xsoftlab.net/training/multiple-threads/communicate-ui.html上节课我们学习了如何启动一项由ThreadPoolExecutor所管理的线程任务。最后这节课我们将学习如何从任务中发送结果数据给UI线程。这项手段可以使任务在执行完毕后将结果显示到UI中去。每个APP拥有独立的UI线程。只有在UI线程中创建的对

2016-10-08 15:28:02 2169

翻译 Android官方开发文档Training系列课程中文版:线程执行操作之线程池操作

原文地址:http://android.xsoftlab.net/training/multiple-threads/run-code.html#StopThread上节课我们学习了如何定义一个类用于管理线程以及任务。这节课将会学习如何在线程池中运行任务。要做到这一点,只需要往线程池的工作队列中添加任务即可。当一条线程处于闲置状态时,那么ThreadPoolExecutor会从任务队列中取出一条任务

2016-10-03 19:49:43 2609

翻译 Android官方开发文档Training系列课程中文版:线程执行操作之创建多线程管理器

原文地址:http://android.xsoftlab.net/training/multiple-threads/create-threadpool.html上节课我们学习了如何定义一个任务。如果只是执行一次任务,那么刚刚所学的已经基本满足要求了。如果需要针对不同的数据执行一项任务,并且同一时间只需要执行一条任务,那么IntentService可能会适合你。如果要使任务随着CPU资源的调度

2016-10-02 16:43:49 2072

翻译 Android官方开发文档Training系列课程中文版:线程执行操作之定义线程执行代码

原文地址:http://android.xsoftlab.net/training/multiple-threads/index.html引言大量的数据处理往往需要花费很长的时间,但如果将这些工作切分并行处理,那么它的速度与效率就会提升很多。在拥有多线程处理器的设备中,系统可以使线程并行运行。比如,使用多线程将图像文件切分解码展示要比单一线程解码快得多。这章我内容们将会学习如何设置并使用多线程及线程

2016-09-28 07:56:35 2082

翻译 Android官方开发文档Training系列课程中文版:电池续航时间优化之按需开启广播接收器

监测设备状态变化最简单的实现方式就是为每种状态都创建一个广播接收器,然后只需在相应的广播接收器内依据当前的设备状态重新执行各自的任务即可。这种方式的不好之处就在于每次广播接收器被触发后,APP都会唤醒设备。一种比较好的解决方案就是在运行时关闭或开启广播接收器。这样也可以使在清单文件中声明的广播接收器按需触发。

2016-09-27 08:55:26 2031

翻译 Android官方开发文档Training系列课程中文版:电池续航时间优化之检查、检测网络连接状态

原文地址:http://android.xsoftlab.net/training/monitoring-device-state/connectivity-monitoring.html通常会有一些后台服务需要连接到网络来更新数据。但是如果没有连接到互联网,或者由于网络太慢而不能完成更新,那么为什么不在连接到网络并且状况良好时再做这些工作呢?你可以使用ConnectivityManage

2016-09-26 13:07:43 2505 2

翻译 Android官方开发文档Training系列课程中文版:电池续航时间优化之检查与监测坞的状态与类型

原文地址:http://android.xsoftlab.net/training/monitoring-device-state/docking-monitoring.html 译者提示:这里说的坞是一种扩展设备,Android中比较少见,而苹果设备比较常见。我们常见的苹果设备的扩展坞就是苹果体验店的各种小型音响设备。Android设备可以被放置在若干种不同的扩展坞中。这些扩展坞包

2016-09-22 08:55:17 2272

翻译 Android官方开发文档Training系列课程中文版:电池续航时间优化之监测电池电量及充电状态

原文地址:http://android.xsoftlab.net/training/monitoring-device-state/index.html引言作为一款优秀的APP应用,应该想方设法的降低电量的消耗。通过这节课的学习,你将有能力使APP可以基于设备的状态来调整它的功能以及行为。我们可以通过比如在断开连接时关闭后台服务,或者在电量低的时候降低更新的频率等等手段来将耗电量降

2016-09-21 08:40:01 2502

翻译 Android官方开发文档Training系列课程中文版:布局性能优化之ListView的优化

原文地址:http://android.xsoftlab.net/training/improving-layouts/smooth-scrolling.html想要让ListView滑动流畅的关键所在是减轻主线程的负担。要确保任何的磁盘访问、网络访问、或者SQL访问都是在单独的线程中执行的。如果要测试APP的状态,可以开启StrictMode。使用后台线程使用工作线程可以使UI线

2016-09-20 08:59:24 2032

翻译 Android官方开发文档Training系列课程中文版:布局性能优化之按需加载View

原文地址:http://android.xsoftlab.net/training/improving-layouts/loading-ondemand.html有时应用程序中会有一些很少用到的复杂布局。不论是进度指示器还是item的详情或是撤销的消息,在需要的时候加载可以降低内存的使用以及可以加快界面的渲染速度。定义ViewStubViewStub是一个轻量级的View,它没有尺

2016-09-19 10:21:53 1873

翻译 Android官方开发文档Training系列课程中文版:布局性能优化之布局复用

原文地址:http://android.xsoftlab.net/training/improving-layouts/reusing-layouts.html尽管Android提供了种类繁多的可重用控件,但是有时你可能希望重用那些指定的布局。如果要重用这些布局,你可以使用标签与标签,它们可将另外的布局嵌入进当前的布局中。可重用布局这项功能特别强大,它可以使你创建那些复杂的可重用布局。比方

2016-09-13 13:30:27 1753

翻译 Android官方开发文档Training系列课程中文版:布局性能优化之布局层级优化

原文地址:http://android.xsoftlab.net/training/improving-layouts/index.html引言布局是直接影响用户体验的关键部分。如果实现的不好,那么布局很有可能会导致内存紧张。Android的SDK包含的一些工具可以用来检查布局性能上的问题。结合本章的课程学习,你将有能力以最小的内存开销实现更为顺畅的UI体验。优化布局层级有

2016-09-12 11:29:08 2152

翻译 Android官方开发文档Training系列课程中文版:性能优化建议

原文地址:http://android.xsoftlab.net/training/articles/perf-tips.html本篇文章主要介绍那些可以提升整体性能的微小优化点。它与那些能突然改观性能效果的优化手段并不属于同一类。选择正确的算法与数据结构总是我们的第一法则,但是这不是我们这篇文章要介绍的。你应当将这篇文章所提及的知识点作为日常编码的习惯,这可以提升普通代码的运行效率。下面

2016-09-06 08:55:47 3464

翻译 Android官方开发文档Training系列课程中文版:APP的内存管理

原文地址:http://android.xsoftlab.net/training/articles/memory.html随机存储器(RAM)在任何软件运行环境中都是一块非常重要的区域,尤其是在内存受限的移动操作系统上。尽管Android的Dalvik虚拟机会进行垃圾回收,但是这不意味着APP就可以忽略所申请及所释放的内存。为了可以使垃圾回收器能清理APP所使用的内存空间,你需要防止内存

2016-09-05 08:58:38 20010 5

翻译 Android官方开发文档Training系列课程中文版:管理设备的睡眠状态

原文地址:http://android.xsoftlab.net/training/scheduling/index.html引言当Android设备处于闲置状态时,它首先屏幕会变暗,接着会关闭屏幕,最后会将CPU关闭。这些措施可以防止设备的电量迅速被耗尽。但是当APP需要的话,还是会有例外的情况:比如游戏类APP或者视频类APP需要保持屏幕常亮。有一部分APP或许不需要屏幕保

2016-09-02 08:43:58 1831

转载 数据库的方向 - 行vs列(转自: IBM i 中国开发团队)

转载地址:https://www.ibm.com/developerworks/community/blogs/IBMi/entry/database?lang=en原文链接:http://ibmsystemsmag.blogs.com/you_and_i/db2/数据库的方向 - 行vs列如果你是一位数据库专家的话,这篇博客可能帮不了你什么。如果你是一位IT人士,但对数据库技术只知其然的话,这篇博

2016-09-01 12:18:16 826

翻译 Android官方开发文档Training系列课程中文版:后台加载数据之处理CursorLoader的查询结果

原文地址:http://android.xsoftlab.net/training/load-data-background/handle-results.html就像上节课所说的,我们应该在onCreateLoader()内使用CursorLoader来加载数据。那么在数据加载完毕之后,加载结果会通过LoaderCallbacks.onLoadFinished()方法传回到实现类中。该方法的其中一

2016-08-26 07:51:33 2065

翻译 Android官方开发文档Training系列课程中文版:后台加载数据之使用CursorLoader进行查询

原文地址:http://android.xsoftlab.net/training/load-data-background/index.html引言在ContentProvider中查询数据是需要花点时间的。如果你直接在Activity进行查询,那么这可能会导致UI线程阻塞,并会引起”Application Not Responding”异常。就算不会发生这些事情,那么用户也能感觉到

2016-08-25 08:50:05 2034

翻译 Android官方开发文档Training系列课程中文版:后台服务之响应IntentService的处理结果

原文地址:https://developer.android.com/training/run-background-service/report-status.html这节课主要学习如何将IntentService中的执行结果返回给请求点。一种推荐的方式就是使用 LocalBroadcastManager来实现,它会将所广播的Intent限制在APP内部。发送IntentServic

2016-08-23 08:23:58 2084

翻译 Android官方开发文档Training系列课程中文版:后台服务之IntentService的使用

原文地址:http://android.xsoftlab.net/training/run-background-service/send-request.html上节课我们学习了如何创建IntentService类。这节课我们主要学习如何通过Intent使IntentService运行工作请求。Intent可以携带任意数据交给IntentService处理。你可以在Activity或者Fra

2016-08-22 08:37:38 1482

翻译 Android官方开发文档Training系列课程中文版:后台服务之IntentService的创建

原文地址:http://android.xsoftlab.net/training/run-background-service/index.html引言除非特别指定,否则所有的操作都是在UI线程中执行的。不过这会引起问题,因为长时间的耗时操作会妨碍UI线程的运行。这会惹恼用户,并可能会引起系统错误。为了避免这样的情况出现,Android为此提供了一些类,可以使这些耗时操作放在单独的线

2016-08-19 08:09:08 1579

翻译 Android官方开发文档Training系列课程中文版:键盘输入处理之处理键盘按键

原文地址:http://android.xsoftlab.net/training/keyboard-input/commands.html当用户将焦点给到可编辑文本的View时,例如EditText这种,并且该设备还拥有实体键盘,那么所有的输入都会被系统处理。然而,如果你希望可以拦截或者直接处理键盘的输入事件的话,你可以通过实现回调方法KeyEvent.Callback接口来做到。比如onK

2016-08-18 08:42:39 1572

翻译 Android官方开发文档Training系列课程中文版:键盘输入处理之控制输入法的显示方式

原文地址:http://android.xsoftlab.net/training/keyboard-input/visibility.html当输入的焦点进入或者离开文本框时,Android会适当的显示或隐藏输入法。系统还会决定UI及文本框如何出现在输入法的上方。比如,当垂直方向上的可用空间非常紧张时,那么文本框可能就会填充输入法上方的整个区域。对于大多数的APP来说,这样的默认行为是它们所

2016-08-17 08:13:03 1450

翻译 Android官方开发文档Training系列课程中文版:键盘输入处理之指定输入的类型

原文地址:http://android.xsoftlab.net/training/keyboard-input/index.html引言文本框接收到焦点时,Android系统会在屏幕上显示一个软键盘。为了提供最佳的用户体验,你可以指定相关输入类型的特性,以及输入法应当如何展现。除了屏幕上的软键盘之外,Android还支持实体键盘,所以APP如何与各种类型的键盘交互这件事情,就变得

2016-08-16 06:08:25 2179

翻译 Android官方开发文档Training系列课程中文版:手势处理之ViewGroup的事件管理

原文地址:https://developer.android.com/training/gestures/viewgroup.html在ViewGroup中处理触摸事件要格外小心,因为在ViewGroup中有很多子View,而这些子View对于不同的触摸事件来说是不同的目标。要确保每个View都正确的接收了相应的触摸事件。在ViewGroup中拦截触摸事件onInterceptTouchEvent(

2016-08-15 00:02:11 3247 4

翻译 Android官方开发文档Training系列课程中文版:手势处理之拖拽或缩放

原文地址:http://android.xsoftlab.net/training/gestures/scale.html这节课主要学习如何使用触摸手势来拖动或者放大屏幕上的对象,以及使用onTouchEvent()方法来拦截触摸事件。拖动对象 如果你的重点在Android 3.0以上的版本,那么你可以使用内置的拖拽事件监听器View.OnDragListener。触摸手

2016-08-12 10:33:20 2243

翻译 Android官方开发文档Training系列课程中文版:手势处理之多点触控处理

原文地址:http://android.xsoftlab.net/training/gestures/multi.html多点触控是指多个手指同时触摸屏幕的情况。这节课主要学习如何检查多点触控手势。记录多个触控点当多根手指同时触碰到屏幕时,系统会产生以下触摸事件:ACTION_DOWN -第一个触碰到屏幕的点。它是手势的起始事件。这个触控点的指针数据在MotionEvent对

2016-08-10 08:09:52 1532 1

翻译 Android官方开发文档Training系列课程中文版:手势处理之滚动动画及Scroller

原文地址:http://android.xsoftlab.net/training/gestures/scroll.html在Android中,滑动经常由ScrollView类来实现。任何超出容器边界的布局都应该将自己内嵌在ScrollView中,以便提供可滚动的视图效果。自定义滚动只有在特定的场景下才会被用到。这节课将会描述这样一种场景:使用scroller显示一种可滚动的效果。你可以使用Scro

2016-08-07 23:02:44 1855

翻译 Android官方开发文档Training系列课程中文版:手势处理之记录手指移动的轨迹

原文地址:http://android.xsoftlab.net/training/gestures/movement.html这节课将会学习如何在触摸事件中记录手指移动的轨迹。当手指触摸的位置、压力或者尺寸发生变化时,ACTION_MOVE事件就会被触发。与Detecting Common Gestures中描述的一样,所有的事件都被记录在一个MotionEvent对象中。因为基于手指的触摸并不是

2016-08-04 08:45:59 2591

翻译 Android官方开发文档Training系列课程中文版:手势处理之监测通用手势

原文地址:http://android.xsoftlab.net/training/gestures/index.html引言这节课将会学习如何使用户通过触摸手势与APP产生交互。Android提供了许多API来辅助你创建与检测手势。尽管APP不应该将触摸手势作为基本的特性,但是APP使用了触摸手势后可以使APP迅速的增长它的有益性与吸引力。为了提供一种一贯的,直观的经验,AP

2016-08-02 08:38:22 1607

翻译 Android官方开发文档Training系列课程中文版:管理系统UI之隐藏状态条

原文地址:http://android.xsoftlab.net/training/system-ui/status.html这节课介绍了在不同的版本中隐藏状态条。隐藏状态条可以使内容展示区域更大,因此可以提供更强的身临其境的用户体验。含有状态条的APP:隐藏状态条的APP,注意这里的ActionBar同样也隐藏了。绝不要在没有状态条的时候还显示ActionBar:在A

2016-08-01 08:25:24 1725

翻译 Android官方开发文档Training系列课程中文版:管理系统UI之变暗系统条

原文地址:http://android.xsoftlab.net/training/system-ui/index.html引言系统条(System Bars)是屏幕上的一块显示区域,专门用来显示通知,设备的通讯状态以及设备的导向。典型的System Bars与APP同时显示在屏幕上。APP展示了具体的内容,比如电影或者照片,这时可以临时性的将System Bars的图标变暗,以便减少

2016-07-22 08:37:50 1841

翻译 Android官方开发文档Training系列课程中文版:创建自定义View之View的优化

原文地址:http://android.xsoftlab.net/training/custom-views/optimizing-view.html现在已经完成了一个拥有良好设计的View,它即可以响应手势,又可以在状态之间过渡。为了避免View在感觉上卡顿,要确保动画始终是每秒60帧的频率。尽可能的降低频率为了使View流畅,要从调用频繁的方法中消除不必要的代码。首先从onDr

2016-07-21 08:19:14 2336

翻译 Android官方开发文档Training系列课程中文版:创建自定义View之View的交互

这一章很有价值,想要提升安卓知识的一定要读一读。不做安卓的也可以得到其它方面的提升。原文地址:http://android.xsoftlab.net/training/custom-views/making-interactive.htmlUI的绘制只是自定义View的一部分。你还需要使View可以以一种接近真实世界的反馈方式来响应用户的输入事件。虚拟世界中的对象应该总是以真实世界中对象

2016-07-20 08:32:01 2248

翻译 Android官方开发文档Training系列课程中文版:创建自定义View之View的绘制

原文地址:http://android.xsoftlab.net/training/custom-views/custom-drawing.html#draw自定义View最重要的部分就是它的外观了。自定义绘制根据程序的需要或者简单亦或者复杂。这节课的内容涵盖了大多数通用的知识点。重写onDraw()方法绘制自定义View很重要的一个步骤就是重写它的onDraw()方法。该方法含有

2016-07-12 08:18:39 2993

翻译 Android官方开发文档Training系列课程中文版:创建自定义View之View的创建

原文地址:http://android.xsoftlab.net/training/custom-views/index.html引言Android框架中拥有大量的View类,这些类用来展示各式各样的数据,并可以直接与用户交互。但是某些时候,APP有一项很特殊的需求,而框架中的View还不能满足这样的需求,这时就需要根据需求自己创建一个全新的View类了。这节课程将会学习如何创建健壮的

2016-07-11 08:15:58 42157 2

翻译 Android官方开发文档Training系列课程中文版:多样屏幕之实现自适应UI

原文地址:http://android.xsoftlab.net/training/multiscreen/adaptui.html基于程序当前所显示的布局来说,UI流程可能会有所不同。比如说,如果程序当前处于多面板模式,点击左面板中的项目会直接在右面版中显示具体的内容;如果当前是单面板模式,那么具体的内容则会在新的页面中显示。检查当前的布局因为每种布局的实现可能会有所不同,所以首

2016-06-30 07:56:40 3863

翻译 Android官方开发文档Training系列课程中文版:多样屏幕之支持不同的屏幕密度

原文地址:http://android.xsoftlab.net/training/multiscreen/screendensities.html这节课将会学习如何通过不同的资源以及独立的测量单位来支持不同的屏幕密度。使用密度独立的像素单位你必须要避免这么一个陷阱:在设计布局时,使用了绝对的像素单位来定义距离及尺寸。通过像素来定义布局的尺寸是个问题,因为不同的屏幕含有不同的像素密

2016-06-28 08:46:20 2516

翻译 Android官方开发文档Training系列课程中文版:多样屏幕之支持不同的屏幕尺寸

原文地址:http://android.xsoftlab.net/training/multiscreen/index.html引言Android运行于数以百计不同尺寸的设备上。范围小到手持移动电话,大到电视设备。因此,在设计APP时应当兼顾到尽可能多的屏幕尺寸。这样才能照顾到较多的潜在用户。但是仅仅考虑不同的设备类型还不够。每一种尺寸为用户提供了不同的可能性与挑战,所以为了使用户

2016-06-27 08:42:48 11123 2

MVP模式在Android中的应用之图片展示选择功能的框架设计

在Android中图片平常需要展示,也有可能会遇到选择,除此之外,界面可能又会不断变化,也有可能数据来源不一致,这种情况下该如何设计?该图可供参考,肯定有不足之处,欢迎提意见。

2015-11-17

MVP模式在Android中的应用UML图2

MVP模式在Android中的应用UML图2,图完善的更丰富,类别更多,为第一版的升级版

2015-11-13

MVP模式在Android中的应用UML图

MVP模式在Android中的应用UML图(应用于RecyclerView)高清图

2015-11-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除