前言 在本系列的上一篇文章中,我们学习了WMS的诞生,WMS被创建后,它的重要的成员有哪些?Window添加过程的WMS部分做了什么呢?这篇文章会给你解答. 1.WMS的重要成员 所谓WMS的重要成员是指WMS中的重要的成员变量,如下所示.frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java final WindowManagerPolicy mPolicy; final IActiv…
前言 在本系列文章中,我提到过:Window的操作分为两大部分,一部分是WindowManager处理部分,另一部分是WMS处理部分,Window的删除过程也不例外,本篇文章会介绍Window的删除过程,包括了两大处理部分的内容. Window的删除过程 和Android解析WindowManagerService(二)WMS的重要成员和Window的添加过程这篇文章中Window的创建和更新过程类似,要删除Window需要先调用WindowManagerImpl的removeView方法,re…
前言 在此前的系列文章中我们学习了WindowManager体系和Window的属性,这一篇我们接着来讲Window的添加过程.建议阅读此篇文章前先阅读本系列的前两篇文章. 1.概述 WindowManager对Window进行管理,说到管理那就离不开对Window的添加.更新和删除的操作,在这里我们把它们统称为Window的操作.对于Window的操作,最终都是交由WMS来进行处理.窗口的操作分为两大部分,一部分是WindowManager处理部分,另一部分是WMS处理部分.我们知道Windo…
以前写过客户端Window的创建过程,大概是这样子的.我们一开始从Thread中的handleLaunchActivity方法开始分析,首先加载Activity的字节码文件,利用反射的方式创建一个Activity对象,调用Activity对象的attach方法,在attach方法中,创建系统需要的Window并为设置回调,这个回调定义在Window之中,由Activity实现,当Window的状态发生变化的时候,就会回调Activity实现的这些回调方法.调用attach方法之后,Window被…
前言 此前我用多篇文章介绍了WindowManager,这个系列我们来介绍WindowManager的管理者WMS,首先我们先来学习WMS是如何产生的.本文源码基于Android 8.0,与Android 7.1.2相比有一个比较直观的变化就是Java FrameWork采用了Lambda表达式. 1.WMS概述 WMS是系统的其他服务,无论对于应用开发还是Framework开发都是重点的知识,它的职责有很多,主要有以下几点: 窗口管理 WMS是窗口的管理者,它负责窗口的启动.添加和删除,另外窗…
转眼间近一年没更新博客了,工作一忙起来.非常难有时间来写博客了,因为如今也在从事Android开发相关的工作,因此以后的博文也会很多其它地专注于这一块. 这篇文章准备从源代码层面为大家带来Touch事件的传递机制.我这里分析的源代码时Android4.4的. 说到分析源代码,光看肯定是不行的,一定要亲自去跟,而且要边跟边思考,所以在下一篇中.会有一个Demo来为大家详细分析源代码的走向. 以下进入正题,先来看下Android中事件的分类: 1.键盘事件:主要是指按下虚拟键盘的某个按键.或者机身的…
在本系列的上一篇文章中,我们学习了Glide的基本用法,体验了这个图片加载框架的强大功能,以及它非常简便的API.还没有看过上一篇文章的朋友,建议先去阅读 Android图片加载框架最全解析(一),Glide的基本用法 . 在多数情况下,我们想要在界面上加载并展示一张图片只需要一行代码就能实现,如下所示: Glide.with(this).load(url).into(imageView); 虽说只有这简简单单的一行代码,但大家可能不知道的是,Glide在背后帮我们默默执行了成吨的工作.这个形容…
前言 在上一篇文章我们学习了WindowManager体系,了解了Window和WindowManager之间的关系,这一篇我们接着来学习Window的属性. 1.概述 上一篇文章中我们讲过了Window.WindowManager和WMS之间的关系,WMS是Window的最终管理者,Window好比是员工,WMS是老板,为了方便老板管理员工则需要定义一些“协议”,这些“协议”就是Window的属性,被定义在WindowManager的内部类LayoutParams中,了解Window的属性能够…
原文:C++ 与"类"有关的注意事项总结(十二):按成员初始化 与 按成员赋值 一.按成员初始化(与构造函数和拷贝构造函数有关) 用一个类对象初始化另一个类对象,比如: Account oldAcct( "Anna Livia Plurabelle" ); Account newAcct( oldAcct ); 被称为缺省的按成员初始化(default memberwise initialization),缺省是因为它自动发生,无论我们是否提供显式构造函数,按成员是…
写在最前(这是对上一篇博文的问题做的更新[android利用zbar二维码扫描]) project下载   zbarLib编译project  project下载0积分 bug 在2.3的系统中Holder须要设置type,否则会黑屏(感谢网友[(α ⒎待sんа)294439435]) com.example.qu.MainActivity的第50行mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); 今天发现 在com.exampl…
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/8526644 在Android系统中,输入法窗口是一种特殊类型的窗口,它总是位于需要使用输入法的窗口的上面.也就是说,一旦 WindowManagerService服务检测到焦点窗口需要使用输入法,那么它就会调整输入法窗口在窗口堆栈中的位置,使得输入法窗口位于在焦点窗 口的上面,这样用户可以通过输入法窗口来录入字母或者文字.本文就将详细分析Win…
一.Java解析YAML 1. API的选择 一般分两种:Jyaml和snakeYAML.(Jyaml下载地址:http://download.csdn.net/detail/dgssfgfs/8477109) 2.Jar包的导入 这个不用说了,不会自己百度. 3.yaml的解析 import org.ho.yaml.Yaml; …… File f = new File("y.yaml"); FileInputStream fi=new FileInputStream(f.getAbs…
android解析Json数据是比较常见的一种操作.也是客户端和服务器进行数据交互的桥梁.下面就来看一看在android中解析JSon数据的方法吧. 首先要想获得Json数据,就必须访问相关的网络接口.下面是一些常见的网络接口: webservice工厂接口 http://www.36wu.com 快递查询接口http://webservice.36wu.com/ExpressService.asmx ip查询接口http://webservice.36wu.com/ipService.asmx…
前言 WindowManagerService(WMS)和AMS一样,都是Android开发需要掌握的知识点,同样的,WMS也很复杂,需要多篇文章来进行讲解,为何更好的理解WMS,首先要了解WindowManager,这一篇我们来学习WindowManager体系. 1.Window.WindowManager和WMS Window我们应该很熟悉,它是一个抽象类,具体的实现类为PhoneWindow,它对View进行管理. WindowManager是一个接口类,继承自接口ViewManager…
本系列文章如下: Android JNI(一)——NDK与JNI基础 Android JNI学习(二)——实战JNI之“hello world” Android JNI学习(三)——Java与Native相互调用 Android JNI学习(四)——JNI的常用方法的中文API Android JNI学习(五)——Demo演示 本地内容主要简介如下: 1.环境展示 2.传统方式的具体流程 3.传统方式的相关问题 4.传统方式的so文件 5.通过CMake工具demo演示流程 6.CMake工具d…
目录 PHP 类与对象 全解析( 一) PHP 类与对象 全解析( 二) PHP 类与对象 全解析(三 ) 7.Static关键字 声明类成员或方法为static,就可以不实例化类而直接访问.不能通过一个对象来访问其中的静态成员(静态方法除外). 静态成员属于类,不属于任何对象实例,但类的对象实例都能共享. 小结: 在类内部访问静态成员属性或者方法,使用 self::(没有 $ 符号),如:  self:: $country  //类内部访问静态成员属性  self:: myCountry()…
转载自 技术世界,原文链接 Kafka设计解析(二)- Kafka High Availability (上) Kafka从0.8版本开始提供High Availability机制,从而提高了系统可用性及数据持久性.本文从Data Replication和Leader Election两方面介绍了Kafka的HA机制. 目录 一.Kafka为何需要High Available 1. 为何需要Replication 2. 为何需要Leader Election 二.Kafka HA设计解析 1.…
Volley源码解析(二) 没有缓存的情况下直接走网络请求源码分析 Volley源码一共40多个类和接口.除去一些工具类的实现,核心代码只有20多个类.所以相对来说分析起来没有那么吃力.但是要想分析透源码还是需要先宏观后微观的分支线式地来跟踪源码的来龙去脉.这才能把源码分析清楚.分析透彻.并且在了解源码的基础上根据自己的需求进行相应的改造. Volley这个系列分析源码的人很多了.但是分析完代码能够带入实际工程场景进行改造改良使其适应自己工程的博文还是很少的.这里会按照先宏观后围观,先简单后复杂…
本系列文章将第三方的登录分享功能进行二次封装,统一接口调用,简化了接不同平台登录分享的步骤. 0 系列文章 系列一 Android SDK的二次封装和使用 系列二 源码解析 系列三 微信SDK接入 系列四 QQ SDK接入 系列五 新浪微博 SDK接入 1 前言 现在有市场上又好几家都做了社会化分享组件,比如ShareSDK,Umeng等.唯一的缺点就是,必须得注册相应服务平台的账号.无法单纯使用客户端SDK. 本系列文章即开源实现了社会化的登录分享,统一对外接口.会分别从如何使用.源码解析.各…
Android插件化(二):OpenAtlas插件安装过程分析   转 https://www.300168.com/yidong/show-2788.html   核心提示:在前一篇博客 Android插件化(一):OpenAtlas架构以及实现原理概要 中,我们对应Android插件化存在的问题,实现原理,以及目前的实现方案进行了简单的叙述.从这篇开始,我们要深入到OpenAtlas的源码中进行插件安装过程的分析. 插件的安装分为3种:宿主启动时立 在前一篇博客 Android插件化(一):…
前言 Android开发里二维码开发经常用到,这里简单的介绍下Android开发里的二维码. 最广泛使用的二维码库zxing zxing是最广泛的二维码库各个平台都可以适用它,但是Android平台使用它好像需要进行JNI处理.但是,github上大神已经帮我们做好了,下面我会介绍一个好用的二维码框架.这里提zxing是让你知道很多二维码框架的封装源头都是它. github地址:https://github.com/zxing/zxing barcodescanner 第三方二维码框架 gith…
转载:http://blog.csdn.net/xiaanming/article/details/10163203 了解二维码这个东西还是从微信中,当时微信推出二维码扫描功能,自己感觉挺新颖的,从一张图片中扫一下竟然能直接加好友,不可思议啊,那时候还不了解二维码,呵呵,然后做项目的时候,老板说要加上二维码扫描功能,然后自己的屁颠屁颠的去百度,google啥的,发现很多朋友都有介绍二维码扫描的功能,然后我就跟着人家的介绍自己搞起了二维码扫描功能,跟着人家的帖子,很快我的项目就加入了扫描二维码的功…
嵌套Fragment的使用及常见错误 嵌套Fragments (Nested Fragments), 是在Fragment内部又添加Fragment. 使用时, 主要要依靠宿主Fragment的 getChildFragmentManager() 来获取FragmentManger. 虽然看起来和在activity中添加fragment差不多, 但因为fragment生命周期及管理恢复模式不同, 其中有一些需要特别注意的地方. 本文内容还包括了从Fragment迁移到v4.Fragment代码中…
Android反编译(二) 之反编译XML资源文件 [目录] 1.工具 2.反编译步骤 3.重新编译APK 4.实例 5.装X技巧 6.学习总结 1.工具 1).反编译工具  apktool http://code.google.com/p/android-apktool/downloads/list   命令:    apktool d [目标.apk] [目标文件夹]           ---------反编译(decode)    apktool b [文件夹] [编译之后的名称.apk…
我在我的个人博客上发表了第二篇解析文章.欢迎各位读者批评指正. Cwinux源码解析(二)…
android解析XML总结(SAX.Pull.Dom三种方式) http://www.cnblogs.com/JerryWang1991/archive/2012/02/24/2365507.html…
一. 扫描二维码登录的实现机制: 详细流程图: (1)PC端打开网页(显示出二维码),这时候会保存对应的randnumber(比如:12345678). (2)Android客户端扫码登录,Android客户端就会获取到这个randnumber这条信息,这个时候Android客户端携带username(比如:jikexueyuan)保存到数据库中对应于randnumber 的字段中. (3)PC端网页就会轮询服务器(数据库),查看当前randnumber是否有username,如果有的话就跳转登…
ANDROID Porting系列二.配置一个新产品 详细说明 下面的步骤描述了如何配置新的移动设备和产品的makefile运行android. 1.         目录//vendor/创建一个公司目录   mkdir vendor/<company_name> 2.         创建一个目录下的公司与您在步骤1中创建产品目录.   mkdir vendor/<company_name>/products/ 3.         创建一个特定于产品的 makefile, 调…
关键词:android 电池关机充电 androidboot.mode charger关机充电 充电画面显示 平台信息:内核:linux2.6/linux3.0系统:android/android4.0 平台:S5PV310(samsungexynos 4210)  作者:xubin341719(欢迎转载,请注明作者) 欢迎指正错误,共同学习.共同进步!! android 电池(一):锂电池基本原理篇 android 电池(二):android关机充电流程.充电画面显示 android 电池(三…
前言:今天项目进入攻关期,他们改Bug要改疯掉了,主管为了激励大家,给大家发了一封邮件,讲到他对项目和学习的理解,一个很好的图形模型,分享给大家,如图在下面给出:(不便给出原文,我仅做转述)无论是学习还是其它回报,它的回报曲线如下 :蓝色是(成长+付出),红色是回报.有多久可以达到这个红心,要看我们自已的努力,付出了多少专注与汗水.红色线的上挑,是前期厚积薄发的过程,先有异常低调的学习和努力,才会有海阔天空的心态和能量. 相关文章: 1.<android Graphics(一):概述及基本几何图…