8 yangxi_001

尚未进行身份认证

暂无相关简介

等级
TA的排名 882

Android遍历所有控件的递归和非递归实现

题目描述给出布局的根节点,要求不使用递归的方式将所有类型为Button的控件背景设置为红色。分析对于Android中的布局来说,有两种类型的节点,一种是ViewGroup布局,另外一种是View控件,按照类似树形结构来组织(注意,不是二叉树)。对于控件的遍历,可以转化为对树的遍历。对树的遍历有递归方式和非递归的方式,非递归方式又可以分为深度优先遍历和广度优先遍历。实现&...

2018-09-30 15:18:46

Android中颜色透明度对应16进制值

对应列表 <!--百分比-开头字母--> <!--100% —FF--> <!--95% — F2--> <!--90% — E6--> <!--85% — D9--> <!--80% — CC--> <!--75% — BF--> &lt

2018-01-19 15:22:37

Google推荐的图片加载库Glide于Picasso比较

英文原文 Introduction to Glide, Image Loader Library for Android, recommended by Google译文首发  http://jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0327/2650.html在泰国举行的谷歌开发者论坛上,谷歌为我们介绍了一个名叫 Glide 

2018-01-04 17:03:33

RecyclerView 滑动之后显示数据错乱

由于RecyclerView的onBindViewHolder()方法,只有在getItemViewType()返回类型不同时才会调用,这点是跟ListView的getView()方法不同的地方,所以如果想要每次都调用onBindViewHolder()刷新item数据,就要重写getItemViewType(),让其返回position,否则很容易产生数据错乱的现象。@Override

2017-12-27 18:51:36

Android 从源码的角度分析——为什么要用newInstance来实例化Fragment

最近在看Google技术文档的时候发现了一种新的方式来实例化Fragment,就是采用静态工厂的方式创建Fragment。我们在使用Android studio创建一个类的时候,选择New ->Fragment->Fragment(Blank)可以很直观的看到这种方式的写法:public class BlankFragment extends Fragment { pr

2017-12-27 16:22:32

Android的IPC机制(七)—— Socket的原理简析与使用

综述  在前面的几篇文章中,我们介绍了许多在Android中有关进程间通信的方式,但都是在一个设备上进行的进程间通信,而这时候我们两个应用在不同的设备上的时候,在这个时候我们就不能通过前方介绍的那些方法来解决了。但是我们通过网络进行通信来处理这个问题。今天就来介绍一下Android中网络通信的其中一种方式——Socket。Socket翻译为中文为套接字,而现在套接字也成为了操作系统中的一部

2017-12-19 16:52:42

Android的IPC机制(六)—— BroadcastReceiver的使用

综述  在Android的四大组件中除了ContentProvider能够用于进程间的通信外,还有一个也能够用于进程间的通信,那就是BroadcastReceiver。BroadcastReceiver翻译成中文为广播接收器,既然作为广播接收器,那么必然就有Broadcast。在Android中,Broadcast是一种广泛运用的在应用程序之间传输信息的机制。而BroadcastRecei

2017-12-19 16:48:13

Android的IPC机制(五)—— ContentProvider的使用

综述  对于前面一些的ipc过程都是Service与客户端进行通信。那么在不同应用之间ipc可以采用哪些方式呢?首先我们会想到ContentProvider,因为我们平时获取手机上的联系人,图片等等都是通过ContentProvider得到的。ContentProvider是Android的四大组件之一。翻译成中文为内容提供者,也就是可以将自己的数据提供给别的应用进行使用。那么我们现在就来

2017-12-19 16:47:26

Android的IPC机制(四)—— Messenger的使用及源码分析

综述  在前面几篇中我们详细的介绍了AIDL的使用及原理。在这里我们感觉到AIDL的在使用过程中还是比较复杂的,那么有没有一种简单的方法来实现进程间的通信呢?当然是有的,那就是利用Messenger。Messenger翻译为信使,从他的名字就可以看出这个Messenger就是作为传递消息用的。那么我们就来看一下这个Messenger到底是如何使用的,以及在它内部是如何实现的。Mes

2017-12-19 16:46:19

Android的IPC机制(三)——Binder连接池

综述  前两篇说到AIDL的使用方法,但是当我们的项目很大时,很多模块都需要用到Service,我们总不能为每一个模块都创建一个Service吧,这样一来我们的应用就会显得很笨重。那么有没有一种解决方案叫我们只需要创建一个Service,然后去管理AIDL呢?在任玉刚的《Android开发艺术探索》中给出了一个解决方案,那就是Binder连接池。在这里我们看一下他是怎么实现的。Bi

2017-12-19 16:44:59

Android的IPC机制(二)——AIDL实现原理简析

综述  上篇说到AIDL的使用方法,我们不能仅仅只是满足对AIDL的使用,那么对于AIDL到底是如何实现的呢?为什么我们只是创建一个AIDL文件,系统就会为我们自动生成一个Java文件,那么这个Java文件里面到底包含了哪些内容呢?我们今天就来研究一下。AIDL实现原理  在这里我们首先看一下AIDL是怎么实现的。当我们创建一个Service和一个AIDL接口的时候,然后创

2017-12-19 16:42:07

Android的IPC机制(一)——AIDL的使用

综述  IPC(interprocess communication)是指进程间通信,也就是在两个进程间进行数据交互。不同的操作系统都有他们自己的一套IPC机制。例如在Linux操作系统中可以通过管道、信号量、消息队列、内存共享、套接字等进行进程间通信。那么在Android系统中我们可以通过Binder来进行进程间的通信。当然除了Binder我们还可以使用Socket来进行进程间的通信。

2017-12-19 16:38:45

AndroidStudio Mac OS X 10.5+ 快捷键整理

一、代码移动1. option + ⬆️ / ⬇️ ---------- 选中代码2. option + shift + ⬆️ / ⬇️ ---------- 上下移动代码3. command + D ---------- 复制当前行到下一行4. command + X ---------- 剪切5. command + Delete ---------- 删除行6.

2017-12-19 15:40:02

巧用Android多进程,微信,微博等主流App都在用

1前言对于进程的概念,来到这里的都是编程修仙之人,就不再啰嗦了,相信大家倒着、跳着、躺着、各种姿势都能背出来。2为什么使用多进程?相信很多同学在实际开发中,基本都不会去给app划分进程,而且,在Android中使用多进程,还可能需要编写额外的进程通讯代码,还可能带来额外的Bug,这无疑加大了开发的工作量,在很多创业公司中工期也不允许,这导致了整个app都在一

2017-12-14 15:52:50

从一道面试题来认识java类加载时机与过程

1  开门见山以前曾经看到过一个java的面试题,当时觉得此题很简单,可是自己把代码运行起来,可是结果并不是自己想象的那样。题目如下: class SingleTon { private static SingleTon singleTon = new SingleTon(); public static int count1; public static i

2017-12-13 17:52:45

Android关于service中的耗时操作

原文链接:http://blog.csdn.net/zartzwj/article/details/20864497由于Service和Broadcast一样,都运行在主线程中,所以在这两个里面我们无法做一些长时间的耗时操作,也就是说,如果我们有一个后台服务,是每隔一段时间请求一次服务器,类似于心跳服务,只是没有心跳服务那么频繁,例如每2个小时执行一次连接服务器操作,这样的话,我们

2017-12-11 17:56:48

可能是东半球最全的RxJava使用场景小结

一、Scheduler线程切换这种场景经常会在“后台线程取数据,主线程展示”的模式中看见[html] view plain copyObservable.just(1, 2, 3, 4)              .subscribeOn(Schedulers.io()) // 指定 subscribe() 发生在 IO 线程

2017-10-13 16:26:55

Android Frameworks系列(二) 彻底弄懂startActivity

在Android Frameworks系列(一) startService启动 一文中我们介绍了startService启动的过程,和startService一样,startActivity也是以ActivityManagerService为核心工作的。原理也差不多,不过要比startService复杂,因为Activity的生命周期更多,并且还涉及UI方面的工作。为了分析包括zygote孵化目标

2017-09-22 19:32:28

(译)使用CoordinatorLayout处理滚动

原文链接:Handling Scrolls with CoordinatorLayout概述CoordinatorLayout可以完成很多Google的 Material Design滚动效果。目前,框架中提供了几种方法让它工作并且你不需要自己写动画代码。这些效果包括:为Snackbar提供空间向上和向下滑动Floating Action Button。

2017-09-19 21:02:44

CoordinatorLayout与滚动的处理

英文原文:https://guides.codepath.com/android/Handling-Scrolls-with-CoordinatorLayout 这篇文章专门讲解和CoordinatorLayout相关的知识点,这也是Design Support Library中最重要与最难的部分。概览CoordinatorLayout 实现了多种Material De

2017-09-19 18:46:05

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!