
Android疑难解析
文章平均质量分 96
guolin
每当你在感叹 如果有这样一个东西就好了的时候 请注意 其实这是你的机会
展开
-
Android 15新特性,预测性返回手势
首先要解决的第一个问题就是,什么是预测性返回手势?简单来说,就是在你想要触发返回操作时,让你能够提前预知即将返回到哪个界面。在Android系统中,用户是可以通过点击返回键,或使用返回手势来回到上一个界面的。但上一个界面具体是什么?我们可能并不知道,通常得等点完了返回键之后才能知道具体会返回到哪个界面。那么预测性返回手势是怎么优化这部分体验的呢?貌似我们也基本没怎么见过这种能提前预知即将返回到哪个界面的效果吧。原创 2025-01-17 08:00:00 · 6310 阅读 · 4 评论 -
我以为发现了Android 14系统中的一个bug,然而...
想想这是不是我们所熟知的三大组件原有的默认行为,长期以来一直都是如此,只是这个问题套了个Android 14的壳子,让我一度迷失在了Android各系统版本行为变更的细节里面,以至于没能快速找出问题的本质。魏老师跟我开玩笑说,自己做Android的时候觉得Android实在是太难了,各个系统版本的变化新特性什么的绕来绕去,根本记不住,所以才去做了AI,说AI比较简单。唯一的问题就是,我所使用的上述示例,在没有明确指定当前App包名的情况会崩溃,而我的同事guting却反馈说是没有任何错误日志可以观察到。原创 2024-01-09 08:00:00 · 37134 阅读 · 6 评论 -
Kotlin Flow响应式编程,操作符函数进阶
大家好,今天原创。在上一篇原创文章当中,我跟大家说了会开启一个新的系列,讲一讲Kotlin Flow响应式编程从入门到进阶的内容。总共计划是用三篇文章讲完,而本篇则是这个系列的第二篇文章。如果你还没有看过前面的基础知识入门的话,可以先去参考这里。本篇文章我打算着重讲解一下操作符函数的相关内容。什么是操作符函数?如果你熟悉RxJava,那么对于操作符函数一定不会陌生。原创 2022-11-22 08:00:00 · 41647 阅读 · 27 评论 -
模仿Android微信小程序,实现小程序独立任务视图的效果
不过或许还有些朋友会存在这样的疑惑目前我们的技术实现方案是给每个小程序定义一个单独的Activity(FirstActivity、SecondActivity和ThirdActivity),而微信小程序却可以有无限多个,我们显然不可能在AndroidManifest.xml文件中注册无限个Activity,那么微信又是如何实现的呢?就像我们在最开始的图片中看到的一样,美团小程序有美团的Logo,微博小程序有微博的Logo,星巴克小程序有星巴克的Logo。随取随用,随用随走,也不占用任何手机的存储空间。...原创 2022-07-26 07:30:00 · 34185 阅读 · 7 评论 -
再看LayoutInflater,这次你可能又会有新的认识
今天不想去聊一些Android的新功能,新特性之类的东西,特别想聊一聊这个老生常谈的话题:LayoutInflater。现在看我文章的多数是一些老Android了,相信每个人使用起LayoutInflater都是家常便饭,信手拈来。但即使是这样,我仍然觉得这个知识点有可以分析的地方,看完之后或许你对LayoutInflater又会有一些新的认识。首先概括一下LayoutInflater是用来做什么的。我们都知道,在开发Android应用程序的时候,编写布局基本都是通过xml文件来编写的。当然原创 2021-12-14 08:00:48 · 25583 阅读 · 35 评论 -
再见JCenter,将你的开源库发布到MavenCentral上吧
关于JCenter废弃这件事情,相信许多朋友早就已经知道了。我在几个月前也专门写过一篇文章分析JCenter废弃事件的前前后后。Google已经给出了其官方态度,建议开发者以后发布库都发布到MavenCentral上。官方的态度其实是很重要的,因为以前JCenter也是这样被Google扶正的(结果Google被坑惨了),不然JCenter也无法在Android领域产生这么大的影响力。如果你现在用最新版的Android Studio来创建一个新的项目,你会发现原创 2021-08-17 07:57:34 · 14011 阅读 · 15 评论 -
为什么如此安全的https协议却仍然可以被抓包呢?
上一篇原创写了一篇关于抓包的文章,教大家如何在Android手机上对https协议的请求进行抓包。https协议是一种非常安全的数据传输协议,它在网络上传输的所有内容都是经过加密的。这可能也让一些小伙伴非常不解,如此安全的https协议为什么也能被抓包?这样不就说明这个协议也并不安全吗?其实并不是如此。https协议确实是非常安全的,但同时,用https协议传输的数据也确实是可以被抓包的,它们两者之间并不冲突。那么今天,我们就来探究一下,为什么说它们两者之间并不冲突,以及市场上那些主流的抓包工具原创 2021-06-07 08:03:19 · 17132 阅读 · 8 评论 -
Android 11新特性,Scoped Storage又有了新花样
距离Android 11正式发布已经半年有余,也该是时候写写Android 11新特性这方面的文章了。当初我有大概了解过一些Android 11上的行为变更,总体变化虽然不少,但是要求我们必须去适配的地方并不算多。其中一个可能需要适配的地方是Android 11的权限变更,关于这部分内容我在 PermissionX现在支持Java了!还有Android 11权限变更讲解 这篇文章中已经做了比较详细的讲解。除此之外,在Scoped Storage这块,Android 11上又有了一些新的变化,本篇文章原创 2021-02-23 07:48:31 · 30600 阅读 · 15 评论 -
Jetpack新成员,一篇文章带你玩转Hilt和依赖注入
依赖注入的英文名是Dependency Injection,简称DI。事实上这并不是什么新兴的名词,而是软件工程学当中比较古老的概念了。如果要说对于依赖注入最知名的应用,大概就是Java中的Spring框架了。Spring在刚开始其实就是一个用于处理依赖注入的框架,后来才慢慢变成了一个功能更加广泛的综合型框架。我在学生时代学习Spring时产生了和绝大多数开发者一样的疑惑,就是为什么我们要使用依赖注入呢?现在的我或许可以给出更好的答案了,一言以蔽之:解耦。耦合度过高可能会是你的项目中一个比较原创 2020-11-24 07:53:15 · 33407 阅读 · 79 评论 -
volatile关键字在Android中到底有什么用?
当一个程序运行的时候,数据是保存在内存当中的,但是执行程序这个工作却是由CPU完成的。那么当CPU正在执行着任务呢,突然需要用到某个数据,它就会从内存中去读取这个数据,得到了数据之后再继续向下执行任务。这是理论上理想的工作方式,但是却存在着一个问题。我们知道,CPU的发展是遵循摩尔定律的,每18个月左右集成电路上晶体管的数量就可以翻一倍,因此CPU的速度只会变得越来越快。但是光CPU快没有用呀,因为CPU再快还是要从内存去读取数据,而这个过程是非常缓慢的,所以就大大限制了CPU的发展原创 2020-10-12 07:44:28 · 16496 阅读 · 27 评论 -
浅谈Kotlin的Checked Exception机制
现在使用Kotlin的Android开发者已经越来越多了。这门语言从一开始的无人问津,到后来成为Android开发的一级语言,再到后来Google官宣的Kotlin First。Kotlin正在被越来越多的开发者接受和认可。许多学习Kotlin的开发者之前都是学习过Java的,并且本身Kotlin就是一款基于JVM语言,因此不可避免地需要经常和Java进行比较。Kotlin的诸多特性,在熟悉Java的开发者看来,有些人很喜欢,有些人不喜欢。但即使是不喜欢的那些人,一旦用熟了Kotlin进行程序开原创 2020-09-29 07:35:50 · 13597 阅读 · 22 评论 -
Jetpack新成员,App Startup一篇就懂
Android 11系统已经来了,随之而来的是,Jetpack家族也引入了许多新的成员。其实以后Android的更新都会逐渐采用这种模式,即特定系统相关的API会越来越少,更多的编程API是以Jetpack Library的形式提供给我们的。这样我们就不需要专门针对不同的系统版本去写很多的适配逻辑,而是统一用Jetpack提供的接口即可。Android也是在用这种方式去解决长期以来的碎片化问题。原创 2020-08-25 07:00:29 · 29109 阅读 · 27 评论 -
什么?RecyclerView中获取点击位置的接口被废弃了?
什么?holder.adapterPosition被划线不推荐使用了?《第三行代码》这才刚刚出版,竟然就有API被弃用了,我决定对这个问题好好研究一下,并加急写一篇文章进行分析。仔细一看,holder.adapterPosition这不就是我们平时在RecyclerView里面用于获取点击位置的方法么,这个方法相信每个人都用过不下千百遍,怎么会被废弃呢?于是我到Android的官网去查了一下文档,果然,getAdapterPosition()方法被标记成了废弃:原创 2020-04-21 07:41:24 · 17235 阅读 · 26 评论 -
Android 10适配要点,作用域存储
距离Android 10系统正式发布已经过去大半年左右的时间了,你的应用程序已经对它进行适配了吗?在Android 10众多的行为变更当中,有一点是非常值得引起我们重视的,那就是作用域存储。这个新功能直接颠覆了长久以来我们一直惯用的外置存储空间的使用方式,因此大量App都将面临着较多代码模块的升级。然而,对于作用域存储这个新功能,官方的资料并不多,很多人也没有搞明白它的用法原创 2020-04-14 08:42:48 · 47144 阅读 · 59 评论 -
写一篇最好懂的HTTPS讲解
大家早上好,有段时间没更新文章了。其实疫情期间在家呆了一个多月的时间不能出门,时间倒是挺多的,我也利用这段时间写了几篇新文章。但由于新写的这些文章大都是配合着新书中的内容的,受疫情的影响我写的新书迟迟不能出版,导致这些文章也无法发布,等得我好是焦急。希望疫情早日结束,大家都能快点恢复到正常的生活当中。那么今天先发布一篇和Android无关的技术文章。https这项技术现在已经应用得非常广泛了。随着苹果、Google等各大互联网领头企业纷纷在自己的操作系统、浏览器等主流产品中强制要求使用https原创 2020-03-03 07:44:56 · 56756 阅读 · 143 评论 -
Kotlin vs Flutter,我到底应该怎么选?
在移动应用开发方面,Kotlin和Flutter是目前比较火热的两门技术。其中,Kotlin是由Jetbrains研发,后被Google大力扶持,Flutter则是由Google自己独立研发的。从目前Google官方的态度来看,这两门技术都被无限看好,Google也是在它们身上投入了大量的资源。但也正是由于Google的这种态度,导致很多开发者变得迷茫了:我到底是应该学习Kotlin还是Flutter呢?关于这个问题,我也是被问了无数次,但每次回答都只能简单回复几句,无法全面概括,可能也做不到直至要害。原创 2020-01-17 08:05:15 · 39385 阅读 · 28 评论 -
Android 9.0系统新特性,对刘海屏设备进行适配
其实Android 9.0系统已经是去年推出的“老”系统了,这个系统中新增了一个比较重要的特性,就是对刘海屏设备进行了支持。一直以来我也都有打算针对这个新特性好好地写一篇文章,但是为什么直到拖到了Android 10.0系统都发布了才开始写这篇文章呢?当然,一是因为我这段时间确实比较忙,今年几乎绝大部分的业余时间都放到写新书上了。但是最主要的原因并不是这个,而是因为刘海屏设备的适配存在一定的特殊性原创 2019-11-26 08:05:40 · 20990 阅读 · 20 评论 -
Android提醒微技巧,你真的了解Dialog、Toast和Snackbar吗?
Dialog和Toast所有人肯定都不会陌生的,这个我们平时用的实在是太多了。而Snackbar是Design Support库中提供的新控件,有些朋友可能已经用过了,有些朋友可能还没去了解。但是你真的知道什么时候应该使用Dialog,什么时候应该使用Toast,什么时候应该使用Snackbar吗?本篇文章中我们就来学习一下这三者使用的时机,另外还会介绍一些额外的技巧原创 2016-07-26 07:55:07 · 67906 阅读 · 90 评论 -
Android冷启动白屏解析,带你一步步分析和解决问题
关于首次启动程序白屏时间过长这个问题其实我早就发现了,而且有的时候白屏时间可以长达七八秒。这个问题已经是一个普遍存在的现象了,可能很多人对此都产生了疑惑。那么这里我就专门写一篇文章来为大家答疑解惑吧。另外,本篇文章也向大家展示了一个分析和解决问题的思路,希望大家以后遇到问题可以通过多思考和多动手实验来去尝试解决问题,而不是直接绕过问题原创 2016-06-28 08:52:07 · 59416 阅读 · 78 评论 -
Android Studio新功能解析,你真的了解Instant Run吗?
我们都知道,Android Studio功能非常强大,在各个功能性方面都要优于Eclipse,唯独在速度方面被吐糟得比较惨。Android Studio团队为此也是做了很多的优化,在Android Studio 2.0中,对速度方面进行了大幅度的改进原创 2016-06-02 09:04:15 · 75363 阅读 · 81 评论 -
Android通知栏微技巧,那些你所没关注过的小细节
对于通知栏的使用,Android各个版本其实都有比较大的调整,包括即将发布的Android 7.0版本,通知栏功能上又要有大动作。那么新版本的通知栏API无法兼容老系统这就会是一个很头疼的问题。为此Android在appcompat-v7库中提供了一个NotificationCompat类来处理新老版本的兼容问题,我们在编写通知功能时都使用NotificationCompat这个类来实现原创 2016-05-23 08:56:41 · 46340 阅读 · 74 评论 -
Android安全攻防战,反编译与混淆技术完全解析(上)
我们都知道,Android程序打完包之后得到的是一个APK文件,这个文件是可以直接安装到任何Android手机上的,我们反编译其实也就是对这个APK文件进行反编译。Android的反编译主要又分为两个部分,一个是对代码的反编译,一个是对资源的反编译,我们马上来逐个学习一下。 在开始学习之前,首先我们需要准备一个APK文件,为了尊重所有开发者,我就不拿任何一个市面上的软件来演示了,而是自己写一个Demo用来测试。原创 2016-02-18 09:09:54 · 158100 阅读 · 180 评论 -
Android Scroller完全解析,关于Scroller你所需知道的一切
转载请注明出处:http://blog.youkuaiyun.com/guolin_blog/article/details/48719871 2016大家新年好!这是今年的第一篇文章,那么应优快云工作人员的建议,为了能给大家带来更好的阅读体验,我也是将博客换成了宽屏版。另外,作为一个对新鲜事物从来后知后觉的人,我终于也在新的一年里改用MarkDown编辑器来写博客了,希望大家在我的博客里也能体验到新年新...原创 2016-01-21 09:03:50 · 115196 阅读 · 185 评论 -
Android ListView异步加载图片乱序问题,原因分析及解决方案
在Android所有系统自带的控件当中,ListView这个控件算是用法比较复杂的了,关键是用法复杂也就算了,它还经常会出现一些稀奇古怪的问题,让人非常头疼。比如说在ListView中加载图片,如果是同步加载图片倒还好,但是一旦使用异步加载图片那么问题就来了,这个问题我相信很多Android开发者都曾经遇到过,就是异步加载图片会出现错位乱序的情况。遇到这个问题时,不少人在网上搜索找到了相应的解决方案,但是真正深入理解这个问题出现的原因并对症解决的人恐怕还并不是很多。那么今天我们就来具体深入分析一下ListV原创 2015-08-20 09:15:51 · 76059 阅读 · 129 评论 -
Android ListView工作原理完全解析,带你从源码的角度彻底理解
在Android所有常用的原生控件当中,用法最复杂的应该就是ListView了,它专门用于处理那种内容元素很多,手机屏幕无法展示出所有内容的情况。ListView可以使用列表的形式来展示内容,超出屏幕部分的内容只需要通过手指滑动就可以移动到屏幕内了。另外ListView还有一个非常神奇的功能,我相信大家应该都体验过,即使在ListView中加载非常非常多的数据,比如达到成百上千条甚至更多,ListView都不会发生OOM或者崩溃,而且随着我们手指滑动来浏览更多数据时,程序所占用的内存竟然都不会跟着增长。那原创 2015-07-23 09:09:42 · 148747 阅读 · 214 评论 -
Android属性动画完全解析(下),Interpolator和ViewPropertyAnimator的用法
大家好,欢迎继续回到Android属性动画完全解析。在上一篇文章当中我们学习了属性动画的一些进阶技巧,包括ValueAnimator和ObjectAnimator的高级用法,那么除了这些之外,当然还有一些其它的高级技巧在等着我们学习,因此本篇文章就对整个属性动画完全解析系列收个尾,来学习一下剩下的非常重要的高级技巧。nterpolator这个东西很难进行翻译,直译过来的话是补间器的意思,它的主要作用是可以控制动画的变化速率,比如去实现一种非线性运动的动画效果。那么什么叫做非线性运动的动画效果呢?就是说动画改原创 2015-06-04 09:13:58 · 95012 阅读 · 145 评论 -
Android属性动画完全解析(中),ValueAnimator和ObjectAnimator的高级用法
大家好,在上一篇文章当中,我们学习了Android属性动画的基本用法,当然也是最常用的一些用法,这些用法足以覆盖我们平时大多情况下的动画需求了。但是,正如上篇文章当中所说到的,属性动画对补间动画进行了很大幅度的改进,之前补间动画可以做到的属性动画也能做到,补间动画做不到的现在属性动画也可以做到了。因此,今天我们就来学习一下属性动画的高级用法,看看如何实现一些补间动画所无法实现的功能。阅读本篇文章需要你对属性动画有一定的了解,并且掌握属性动画的基本用法,如果你还对属性动画不够了解的话,建议先去阅读 Andr原创 2015-05-07 09:04:32 · 120686 阅读 · 176 评论 -
Android属性动画完全解析(上),初识属性动画的基本用法
在手机上去实现一些动画效果算是件比较炫酷的事情,因此Android系统在一开始的时候就给我们提供了两种实现动画效果的方式,逐帧动画(frame-by-frame animation)和补间动画(tweened animation)。逐帧动画的工作原理很简单,其实就是将一个完整的动画拆分成一张张单独的图片,然后再将它们连贯起来进行播放,类似于动画片的工作原理。补间动画则是可以对View进行一系列的动画操作,包括淡入淡出、缩放、平移、旋转四种。然而自Android 3.0版本开始,系统给我们提供了一种全新的动原创 2015-04-09 09:56:15 · 211267 阅读 · 190 评论 -
Android最佳性能实践(三)——高性能编码优化
在前两篇文章当中,我们主要学习了Android内存方面的相关知识,包括如何合理地使用内存,以及当发生内存泄露时如何定位出问题的原因。那么关于内存的知识就讨论到这里,今天开始我们将学习一些性能编码优化的技巧。避免创建不必要的对象创建对象从来都不应该是一件随意的事情,因为创建一个对象就意味着垃圾回收器需要回收一个对象,而这两步操作都是需要消耗时间的。虽说创建一个对象的代价确实非常小,并且Android 2.3版本当中又增加了并发垃圾回收器机制,这让GC操作时的停顿时间也变得难以察觉,但是这些理由都不足以让我原创 2015-03-05 09:19:50 · 68956 阅读 · 71 评论 -
Android最佳性能实践(二)——分析内存的使用情况
由于Android是为移动设备开发的操作系统,我们在开发应用程序的时候应当始终把内存问题充分考虑在内。虽然Android系统拥有垃圾自动回收机制,但这并不意味着我们就可以完全忽略何时去分配或释放内存。即使我们全部按照上一篇文章中给出的编程建议来去编写程序,还是会很有可能出现内存泄露或其它类型的内存问题。所以,唯一能够解决问题的办法,就是尝试去分析应用程序的内存使用情况,那么本篇文章就会教大家如何进行分析。虽说现在的手机内存都已经非常大了,但是我们大家都知道,系统是不可能将所有的内存都分配给我们的应用程序的。原创 2015-02-12 09:09:52 · 98647 阅读 · 94 评论 -
Android任务和返回栈完全解析,细数那些你所不知道的细节
一个应用程序当中通常都会包含很多个Activity,每个Activity都应该设计成为一个具有特定的功能,并且可以让用户进行操作的组件。另外,Activity之间还应该是可以相互启动的。比如,一个邮件应用中可能会包含一个用于展示邮件列表的Activity,而当用户点击了其中某一封邮件的时候,就会打开另外一个Activity来显示该封邮件的具体内容。除此之外,一个Activity甚至还可以去启动其它应用程序当中的Activity。打个比方,如果你的应用希望去发送一封邮件,你就可以定义一个具有"send"动作翻译 2014-12-30 09:09:16 · 59066 阅读 · 89 评论 -
Android ActionBar完全解析,使用官方推荐的最佳导航栏(下)
限于篇幅的原因,在上篇文章中我们只学习了ActionBar基础部分的知识,那么本篇文章我们将接着上一章的内容继续学习,探究一下ActionBar更加高级的知识。如果你还没有看过前面一篇文章的话,建议先去阅读Android ActionBar完全解析,使用官方推荐的最佳导航栏(上)。和Action View有点类似,Action Provider也可以将一个Action按钮替换成一个自定义的布局。但不同的是,Action Provider能够完全控制事件的所有行为,并且还可以在点击的时候显示子菜单翻译 2014-06-19 09:40:51 · 79827 阅读 · 89 评论 -
Android ActionBar完全解析,使用官方推荐的最佳导航栏(上)
Action Bar是一种新増的导航栏功能,在Android 3.0之后加入到系统的API当中,它标识了用户当前操作界面的位置,并提供了额外的用户动作、界面导航等功能。使用ActionBar的好处是,它可以给提供一种全局统一的UI界面,使得用户在使用任何一款软件时都懂得该如何操作,并且ActionBar还可以自动适应各种不同大小的屏幕。下面是一张使用ActionBar的界面截图。其中,[1]是ActionBar的图标,[2]是两个action按钮,[3]是overflow按钮翻译 2014-06-05 08:56:56 · 243784 阅读 · 144 评论 -
Android Volley完全解析(四),带你从源码的角度理解Volley
经过前三篇文章的学习,Volley的用法我们已经掌握的差不多了,但是对于Volley的工作原理,恐怕有很多朋友还不是很清楚。因此,本篇文章中我们就来一起阅读一下Volley的源码,将它的工作流程整体地梳理一遍。同时,这也是Volley系列的最后一篇文章了。说起分析源码,那么应该从哪儿开始看起呢?这就要回顾一下Volley的用法了,还记得吗,使用Volley的第一步,首先要调用Volley.newRequestQueue(context)方法来获取一个RequestQueue对象,那么我们自然要从这个方法开原创 2014-05-15 09:39:21 · 89122 阅读 · 101 评论 -
Android Volley完全解析(三),定制自己的Request
经过前面两篇文章的学习,我们已经掌握了Volley各种Request的使用方法,包括StringRequest、JsonRequest、ImageRequest等。其中StringRequest用于请求一条普通的文本数据,JsonRequest(JsonObjectRequest、JsonArrayRequest)用于请求一条JSON格式的数据,ImageRequest则是用于请求网络上的一张图片。可是Volley提供给我们的Request类型就只有这么多,而我们都知道,在网络上传输的数据通常有两种格式,原创 2014-04-29 09:02:46 · 100602 阅读 · 103 评论 -
Android Volley完全解析(二),使用Volley加载网络图片
在上一篇文章中,我们了解了Volley到底是什么,以及它的基本用法。本篇文章中我们即将学习关于Volley更加高级的用法,如何你还没有看过我的上一篇文章的话,建议先去阅读Android Volley完全解析(一),初识Volley的基本用法。在上篇文章中有提到过,Volley是将AsyncHttpClient和Universal-Image-Loader的优点集成于一身的一个框架。我们都知道,Universal-Image-Loader具备非常强大的加载网络图片的功能,而使用Volley,我们也可以实现基原创 2014-04-17 09:23:22 · 165878 阅读 · 122 评论 -
Android高级图片滚动控件,编写3D版的图片轮播器
大家好,好久不见了,最近由于工作特别繁忙,已经有一个多月的时间没写博客了,我也是深感惭愧。那么今天的这篇既然是阔别了一个多月的文章,当然要带来更加给力点的内容了,那么话不多说,赶快进入到今天的正题吧。说到图片轮播器,很多的Android应用中都会带有这个功能,比如说网易新闻、淘宝等。最新我们公司的一款应用也加入了这个功能,并且在图片轮播的基础上还增加了三维立体的效果,但比较遗憾的是,整体效果并不理想,用户体验性比较糟糕。因此,我就花了点时间去编写了一个效果更好的3D图片轮播器,自我感觉还是比较满意的,这里原创 2014-03-13 09:09:27 · 48141 阅读 · 90 评论 -
Android视图状态及重绘流程分析,带你一步步深入了解View(三)
在前面一篇文章中,我和大家一起从源码的层面上分析了视图的绘制流程,了解了视图绘制流程中onMeasure、onLayout、onDraw这三个最重要步骤的工作原理,那么今天我们将继续对View进行深入探究,学习一下视图状态以及重绘方面的知识。如果你还没有看过我前面一篇文章,可以先去阅读 Android视图绘制流程完全解析,带你一步步深入了解View(二) 。相信大家在平时使用View的时候都会发现它是有状态的,比如说有一个按钮,普通状态下是一种效果,但是当手指按下的时候就会变成另外一种效果,这样才会给人产原创 2014-01-09 08:33:38 · 117192 阅读 · 67 评论 -
Android访问网络,使用HttpURLConnection还是HttpClient?
大多数的Android应用程序都会使用HTTP协议来发送和接收网络数据,而Android中主要提供了两种方式来进行HTTP操作,HttpURLConnection和HTTPClient。这两种方式都支持HTTPS协议、以流的形式进行上传和下载、配置超时时间、IPv6、以及连接池等功能。DefaultHttpClient和它的兄弟AndroidHttpClient都是HttpClient具体的实现类,它们都拥有众多的API,而且实现比较稳定,bug数量也很少。但同时也由于HttpClient的API数量过翻译 2013-11-29 08:32:56 · 118446 阅读 · 34 评论 -
Android Service完全解析,关于服务你所需知道的一切(下)
在上一篇文章中,我们学习了Android Service相关的许多重要内容,包括Service的基本用法、Service和Activity进行通信、Service的销毁方式、Service与Thread的关系、以及如何创建前台Service。以上所提到的这些知识点,基本上涵盖了大部分日常开发工作当中可能使用到的Service技术。不过关于Service其实还有一个更加高端的使用技巧没有介绍,即远程Service的用法。使用远程Service甚至可以实现Android跨进程通信的功能,下面就让我们具体地学习一原创 2013-11-07 08:32:32 · 121961 阅读 · 140 评论