技术
文章平均质量分 82
zhaoweixing1989
这个作者很懒,什么都没留下…
展开
-
activity 标签总结1
activity:screenOrientation 限制横竖屏切换 默认是允许横竖屏切换的 android:screenOrientation="unspecified" 默认值,由系统选择方向。所使用的策略,the choices made in specific contexts , may differ from device to device原创 2011-11-15 15:46:18 · 1361 阅读 · 0 评论 -
看了一些 RxJava 的文章我依然不知道的事
以下代码基于 RxJava2内存泄露处理基本代码:private final CompositeDisposable disposables = new CompositeDisposable();public void doSomeWork2() { // 1. 创建一个普通的 observable Observable<String> obse...转载 2018-11-07 14:27:12 · 194 阅读 · 0 评论 -
Rxjava2入门教程一:函数响应式编程及概述
如需下载源码,请访问https://github.com/fengchuanfang/Rxjava2Tutorial文章原创,转载请注明出处:Rxjava2入门教程一:函数响应式编程及概述RxJava是函数响应式编程思想在java语言上的具体实现。RxJava2不是基于RxJava1的父子继承关系,而是同属这一具体实现下的同胞兄弟;所以,如果之前没接触过RxJava,在学习RxJava2之前不需...转载 2018-11-07 14:53:00 · 160 阅读 · 0 评论 -
Rxjava2入门教程二:Observable与Observer响应式编程在Rxjava2中的典型实现
如需下载源码,请访问https://github.com/fengchuanfang/Rxjava2Tutorial文章原创,转载请注明出处:Rxjava2入门教程二:Observable与Observer响应式编程在Rxjava2中的典型实现在RxJava中,函数响应式编程具体表现为一个观察者(Observer)订阅一个可观察对象(Observable),通过创建可观察对象发射数据流,经过一...转载 2018-11-07 14:53:33 · 429 阅读 · 0 评论 -
Rxjava2入门教程三:Operators操作符
如需下载源码,请访问https://github.com/fengchuanfang/Rxjava2Tutorial文章原创,转载请注明出处:Rxjava2入门教程三:Operators操作符Operators操作符操作符(Operators):其实质是函数式编程中的高阶函数,是对响应式编程的各个过程拆分封装后的产物。以便于我们操作数据流。按照其作用具体可分为以下几类:创建:创建一个可...转载 2018-11-07 14:54:11 · 137 阅读 · 0 评论 -
Rxjava2入门教程四:Scheduler线程调度器
如需下载源码,请访问https://github.com/fengchuanfang/Rxjava2Tutorial文章原创,转载请注明出处:Rxjava2入门教程四:Scheduler线程调度器Scheduler(线程调度器)赋予RxJava简洁明了的异步操作,可以说是RxJava中最值得称道的地方。在之前的代码中,Observable发射数据流,Observer接收响应数据流,以及Oper...转载 2018-11-07 14:54:38 · 255 阅读 · 0 评论 -
Rxjava2入门教程五:Flowable背压支持——对Flowable最全面而详细的讲解
如需下载源码,请访问https://github.com/fengchuanfang/Rxjava2Tutorial文章原创,转载请注明出处:Rxjava2入门教程五:Flowable背压支持——对Flowable最全面而详细的讲解背压(backpressure)当上下游在不同的线程中,通过Observable发射,处理,响应数据流时,如果上游发射数据的速度快于下游接收处理数据的速度,这样...转载 2018-11-07 14:55:14 · 645 阅读 · 0 评论 -
Android 6.0 运行时权限处理
运行时权限介绍Android 6.0在我们原有的AndroidManifest.xml声明权限的基础上,又新增了运行时权限动态检测,以下权限都需要在运行时判断:身体传感器日历摄像头通讯录地理位置麦克风电话短信存储空间运行时权限处理Android6.0系统默认为targetSdkVersion小于23的应用默认授予了所申请的所有权限,所以如果你以前的APP设置...转载 2018-11-08 14:34:18 · 133 阅读 · 0 评论 -
java动态代理、Proxy与InvocationHandler
1、代理的基本构成 抽象角色:声明真实对象和代理对象的共同接口,这样可在任何使用真实对象的地方都可以使用代理对象。 代理角色:代理对象内部含有真实对象的引用,从而可以在任何时候操作真实对象。代理对象提供一个与真实对象相同的接口,以便可以在任何时候替代真实对象。代理对象通常在客户端调用传递给真实对象之前或之后,执行某个操作,而不是单纯地将调用传递给真实对象,同时,代理对象可以在执行真实对...转载 2018-11-08 14:35:03 · 222 阅读 · 0 评论 -
Handle的原理(Looper、Handler、Message三者关系)
前面的内容对Handler做了介绍,也讲解了如何使用handler,但是我们并不知道他的实现原理。本文从源码的角度来分析如何实现的。首先我们得知道Handler,Looper,Message Queue三者之间的关系 - Handler封装了消息的发送,也负责接收消。内部会跟Looper关联。 - Looper 消息封装的载,内部包含了MessageQueue,负责从MessageQueu...转载 2018-11-08 14:53:37 · 1255 阅读 · 0 评论 -
ProGuard代码混淆技术详解
前言 受《APP研发录》启发,里面讲到一名Android程序员,在工作一段时间后,会感觉到迷茫,想进阶的话接下去是看Android系统源码呢,还是每天继续做应用,毕竟每天都是画UI和利用MobileAPI处理Json还是蛮无聊的,做着重复的事情,没有技术的上提升空间的。所以,根据里面提到的Android应用开发人员所需要精通的20个技术点,写篇文章进行总结,一方面是梳理下基础知识和...转载 2018-11-08 16:33:05 · 896 阅读 · 0 评论 -
coordinatorLayout使用总结篇,看完这篇完全可以开发5.0的高级特效了
了解相关更多技术,可参考《沉浸式状态栏+ScrollView顶部伸缩+ActionBar渐变》,最近在用coordinatorLayout做一些特效,发现网上有好多人已经走完了坑,借此我们来总结一把。一言不合就上个图,还是动态的 主要是找了半天,好多人说的都不够详细,而且有好多注意事项没有说明,所以走了好多弯路,这个地方就是解决那些关键疑问的,这些疑问清楚了才能真正掌握它的用法代码...转载 2018-11-08 16:33:39 · 194 阅读 · 0 评论 -
关于Android studio里ext中的$rootProject的总结
gradle统一入口版本管理的初衷是解决一个项目只要一个地方修改,各个有引用的模块便可以自动生效,从而达到了一个地方修改各个地方生效的好处,同时能保持gradle引用库版本的一致。使用方法如下:1.首先在项目级别的build.gradle文件底部添加如下信息:ext{ // Sdk and tools minSdkVersion = 15 targetSdkVers...转载 2018-11-08 16:34:31 · 4058 阅读 · 0 评论 -
AppbarLayout的简单用法
在许多App中看到, toolbar有收缩和扩展的效果, 例如:appbar.gif要实现这样的效果, 需要用到:CoordinatorLayout和AppbarLayout的配合, 以及实现了NestedScrollView的布局或控件.AppbarLayout是一种支持响应滚动手势的app bar布局, CollapsingToolbarLayout则是专门用来实现子布局内不同...转载 2018-12-03 14:25:48 · 158 阅读 · 0 评论 -
Android Gradle 插件中文指南
Android Gradle 插件中文指南转自https://github.com/rujews/android-tech-docs/blob/master/new-build-system/user-guide/README.md以下内容由飞雪无情提供翻译原文地址http://tools.android.com/tech-docs/new-build-system/use...转载 2019-05-24 16:20:45 · 510 阅读 · 0 评论 -
Dagger2学习
现在Dagger2在项目里用的越来越多了,最近花了些时间学习了一下Dagger2,这篇文章主要帮助理解Dagger2的注入实现过程,如有错误,还请指正!什么是Dagger2Dagger2是Dagger的升级版,是一个依赖注入框架,现在由Google接手维护。 恩,这里有个关键字依赖注入,因此我们得先知道什么是依赖注入,才能更好的理解Dagger2。依赖注入是面向对象编程的一种设计模式,其...转载 2019-05-23 10:23:30 · 191 阅读 · 0 评论 -
RxJava2.0——从放弃到入门
前言终于到了讲RxJava这一期,RxJava是笔者个人非常喜欢的一个开源库,它很好的将链式编程风格和异步结合在一起。RxJava其实已经推出很久了,可以说是已经很火了,但是目前仍然还有相当一部分Android开发者没有使用过,甚至说是想用,却不知道怎么用,或者不知道自己的项目哪里可以用到,本着让广大开发者理解并且上手项目,从放弃到入门,故推出这边文章。注:本文所有的具体代码实现都在文章最...转载 2018-11-07 14:22:56 · 362 阅读 · 0 评论 -
Fragment 生命周期的详情
Fragment每个生命周期方法的意义、作用(注意红色的不是生命周期方法):setUserVisibleHint():设置Fragment可见或者不可见时会调用此方法。在该方法里面可以通过调用getUserVisibleHint()获得Fragment的状态是可见还是不可见的,如果可见则进行懒加载操作。onAttach():执行该方法时,Fragment与Activity已经完成绑定,该方法有...转载 2018-11-07 11:28:33 · 172 阅读 · 0 评论 -
Fragment全解析系列(一):那些年踩过的坑
本篇主要介绍一些最常见的Fragment的坑以及官方Fragment库的那些自身的BUG,并给出解决方案;这些BUG在你深度使用时会遇到,比如Fragment嵌套时或者单Activity+多Fragment架构时遇到的坑。Fragment是可以让你的app纵享丝滑的设计,如果你的app想在现在基础上性能大幅度提高,并且占用内存降低,同样的界面Activity占用内存比Fragment要多,响应...转载 2018-11-07 11:16:48 · 260 阅读 · 0 评论 -
android 阶段总结1
View.java /** * * This is called to find out how big a view should be. The parent * supplies constraint information in the width and height parameters. * * *原创 2012-11-02 10:43:26 · 6144 阅读 · 1 评论 -
Java内存管理:深入Java内存区域
本文引用自:深入理解Java虚拟机的第2章内容 Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人却想出来。 概述: 对于从事C和C++程序开发的开发人员来说,在内存管理领域,他们既是拥有最高权力的皇帝,又是从事最基础工作的劳动人民—既拥有每一个对象的“所有权”,又担负着每一个对象生命开始到终结的维护责任。转载 2014-07-16 21:51:33 · 584 阅读 · 0 评论 -
java 中类的加载顺序
1、虚拟机在首次加载Java类时,会对静态初始化块、静态成员变量、静态方法进行一次初始化 2、只有在调用new方法时才会创建类的实例 3、类实例创建过程:按照父子继承关系进行初始化,首先执行父类的初始化块部分,然后是父类的构造方法;再执行本类继承的子类的初始化块,最后是子类的构造方法 4、类实例销毁时候,首先销毁子类部分,再销毁父类部分public class Parent转载 2014-07-17 09:47:00 · 555 阅读 · 0 评论 -
android listview优化几种写法详细介绍
listview Aviewthatshowsitemsinaverticallyscrollinglist。 一个显示一个垂直的滚动子项的列表视图在android开发中,使用listview的地方很多,用它来展现数据,成一个垂直的视图。使用listview是一个标准的适配器模式,用数据--,界面--xml以及适配器--adapter,数据被适配器按照需要的方式展现出来,xml描写了数转载 2015-02-28 16:11:07 · 1513 阅读 · 0 评论 -
java中使用protobuf
http://blog.csdn.net/lan_liang/article/details/6632127调研环境:windows1.http://code.google.com/p/protobuf/downloads/list ,选择其中的win版本下载2.下载一个protobuf-java-2.4.1.jar文件(注意,要与你刚才转载 2015-07-14 11:18:06 · 734 阅读 · 0 评论 -
Android简单自定义圆形和水平ProgressBar seekbar select layer-list 转
ProgressBar简介继承于View类,直接子类有AbsSeekBar和ContentLoadingProgressBar,其中AbsSeekBar的子类有SeekBar和RatingBar,可见这二者也是基于ProgressBar实现的。1、ProgressBar有两个进度,一个是android:progress,另一个是android:secon转载 2015-10-26 11:25:35 · 3521 阅读 · 0 评论 -
webview 获取html数据和js的传值
最近做webview,遇到2种需求,一种是在自己服务器上的HTML中获取数据,另一种是通过自己服务器上的HTML中的超链接跳到另一个站点的HTML中,并获取数据。于是,总结了2种通过webview获取网页上的数据的方式:第一种:简单点的,直接通过js调java,在调用方法的过程中将数据通过方法的参数传递给Android端,(前提:服务端有对应的faxun对象,而且调用的方法是sho转载 2015-11-16 12:32:39 · 2288 阅读 · 0 评论 -
android 5.0系统新加的默认颜色 colorPrimary,colorPrimaryDark的作用
伴随着Android5.0的发布也更新了support-v7-appcompat 到V21,其中增加了ToolBar、recyclerview、cardview等控件。Android5.0对改变APP样式下了不小的功夫,写法也和以前不一样了,下面先简单介绍一下colorAccent,colorPrimary,colorPrimaryDark……的作用:1.colorPrimary 应用的主要...转载 2018-11-06 18:22:20 · 167 阅读 · 0 评论 -
Toolbar的简单使用
前言:由于之前项目都没怎么使用toobar,今天心血来潮就写了个demo熟悉下,免得以后用到还得花时候查资料,顺便做下笔记!go。。。 一、简介 Toobar是5.0之后出来的,可以说出来之后就取代了ActionBar了(反正我身边的开发人员都不用ActionBar了),好处就不说了,用了之后好不好自己自然有所感觉,要注意的是要兼容5.0以下就使用V7包下的Toobar哦!...转载 2018-11-06 18:34:39 · 242 阅读 · 0 评论 -
Android APP适配全面屏手机的技术要点
关于全面屏全面屏是手机业界对于超高屏占比手机设计的一个宽泛的定义。从字面上解释就是,手机的正面全部都是屏幕,四个边框位置都是采用无边框设计,追求接近100%的屏占比。但受限于目前的技术,还不能做到手机正面屏占比100%的手机。现在业内所说的全面屏手机是指真实屏占比可以达到80%以上,拥有超窄边框设计的手机。全面屏手机屏幕的宽高比例比较特殊,不再是以前的16:9了。比如三星的Galaxy S...转载 2018-11-06 18:35:10 · 680 阅读 · 0 评论 -
android4.4以上沉浸式状态栏和导航栏实现以及Bar的其他管理
自从android4.4开始,android手机状态栏再也不是一成黑的时代,之前叫做变色龙,miui6发布会把他叫做沉浸式,之后大家就自然而然的接受了沉浸式这个名称,其实实际应该叫做Translucent Bar,即为透明状态栏。 沉浸式实现原理其实是使整个activity布局延伸到整个屏幕,然后使状态栏变成透明色,有些手机会有导航栏,同样也可以把导航栏变成透明色,这样会使一些app更加美观。...转载 2018-11-06 18:39:50 · 458 阅读 · 0 评论 -
Rxjava2入门教程六:Single、Completable、Maybe——简化版的Observable
如需下载源码,请访问https://github.com/fengchuanfang/Rxjava2Tutorial文章原创,转载请注明出处:Rxjava2入门教程六:Single、Completable、Maybe——简化版的Observable在Rxjava2中,Observale和Flowable都是用来发射数据流的,但是,我们在实际应用中,很多时候,需要发射的数据并不是数据流的形式,而...转载 2018-11-09 10:54:51 · 605 阅读 · 0 评论 -
Google推荐——Glide使用详解
零、前言本文所使用的Glide版本为3.7.0如果需要使用V4的最新版本请参考Glide V4使用指南一、简介Glide,一个被google所推荐的图片加载库,作者是bumptech。这个库被广泛运用在google的开源项目中,包括2014年的google I/O大会上发布的官方app。(PS:众所周知的简介就到此为止了)Glide 对于 Android SDK 的最低要求是 ...转载 2018-11-09 10:55:30 · 243 阅读 · 0 评论 -
Android 控件 RecyclerView
【Android 控件 RecyclerView】概述RecyclerView是什么从Android 5.0开始,谷歌公司推出了一个用于大量数据展示的新控件RecylerView,可以用来代替传统的ListView,更加强大和灵活。RecyclerView的官方定义如下:A flexible view for providing a limited window into a l...转载 2018-11-09 10:56:05 · 303 阅读 · 0 评论 -
Android gradle3.x中 implementation 、compile、api区别
前言在项目开发中,通常会有很多module,而这些module之间往往是相互依赖的,而当我们修改其中一个module的外部接口,那么依赖了这个module的其他module,需要重新编译,这样gradle就会编译很慢。优化这个操作是可以优化的,所以在android studio3.0 的bulid gradle中就出现了 api 和 implementation作为compile的替代。...转载 2018-11-09 14:54:56 · 293 阅读 · 0 评论 -
http和socket通信的区别
应用层:HTTP协议(基于传输层的TCP协议,主要解决如何包装数据)传输层:TCP协议(基于网络层的IP协议)、TPC/IP协议(主要解决数据如何在网络中传输)网络层:IP协议socket则是对TCP/IP协议的封装和应用(程序员层面上),Socket本身并不是协议,而是一个调用接口(API,它只是提供了一个针对TCP或者UDP编程的接口),通过Socket,我们才能使用TCP/IP...转载 2019-05-23 10:47:54 · 2055 阅读 · 1 评论