
android
醉离歌醉yang
业精于勤,荒于嬉;行成于思,毁于随
展开
-
rxjava的ObserveOn和SubscribeOn的一些结论
ObserveOn:1.OnSub.call的调用过程自上而下的2.多个ObserveOn有作用3.只影响ObserveOn下面的代码4.线程作用在Subscriber上5.只写ObserveOn不写SubscribeOn,不会影响到OnSub.call(Sub)SubscribeOn1.Observe.subscribe(Sub)的调用自下而上2.多个Su原创 2016-12-26 15:29:29 · 605 阅读 · 0 评论 -
苹果核 - Tangram 1.0技术架构
上一篇文章介绍了Tangram的开发思路和发展历程,本文将对Tangram 1.0的技术架构做一个概括性的说明。读者如果要了解更多的技术细节可以访问Tangram主页查看详细文档。Tangram作为一个面向常规业务产品的解决方案由3个部分组成:Tangram SDK:目前Tangram 1.0开源了iOS和Android两个平台的SDK,负责端上的界面渲染。Tangram转载 2017-05-22 14:47:16 · 1009 阅读 · 0 评论 -
苹果核 - JAndFix——Java版本的AndFix方案
兄弟团队出品,转载自:http://www.jianshu.com/p/aaa6ce26f083Welcome to the JAndFix wiki!JAndFix简述JAndFix是一种基于Java实现的Android实时热修复方案,它并不需要重新启动就能生效。JAndFix是在AndFix的基础上改进实现,AndFix主要是通过jni实现对method(A转载 2017-05-22 14:49:04 · 302 阅读 · 0 评论 -
ArraylList的扩容机制和使用ensureCapacity()方法提高性能
ArrayList的扩容规则是变成原来最大容量的1.5倍+1具体为什么,现在看一下源码:[java] view plain copypublic boolean add(E e) { ensureCapacityInternal(size + 1); // Increments modCount!!转载 2017-05-22 18:32:59 · 4708 阅读 · 4 评论 -
后台保活经验分享
保活,按照我们的理解包含两部分:网络连接保活:如何保证消息接收实时性。进程保活:尽量保证应用的进程不被Android系统回收。1.0 网络连接保活网络保活,业界主要手段有:a. GCMb. 公共的第三方push通道(信鸽等)c. 自身跟服务器通过轮询,或者长连接国产机器大多缺乏GMS,在国内GCM也不稳定(心跳原因),第三方通转载 2017-06-14 11:27:42 · 3364 阅读 · 0 评论 -
Android框架攻击之Fragment注入,isValidFragment
摘要: 为了适应越来越大的设备屏幕,Android在3.X后引入了Fragment概念,作用是可以在一个屏幕上同时显示多个Activity,以达到充分利用屏幕的目的。关于Fragment的使用说明,可以阅读《Android Fragment完全解析,关于碎片你所需知道的一切》。为了适应越来越大的设备屏幕,Android在3.X后引入了Fragment概念,作用是可以在一个屏幕上同时显示转载 2017-06-13 15:15:17 · 3494 阅读 · 0 评论 -
一种提高Android应用进程存活率新方法
一、基础知识1.Android 进程优先级1.1 进程优先级等级一般分法:- Activte process- Visible Process- Service process- Background process- Empty process1.2 进程优先级号 ProcessList.java 1 // Adjustme转载 2017-06-14 11:30:41 · 710 阅读 · 0 评论 -
Android Canvas的save(),saveLayer()和restore()浅谈
1.在自定义控件当中你onMeasure和onLayout的工作做完成以后就该绘制该控件了,有时候需要自己在控件上添加一些修饰来满足需求复写onDraw(Canvas canvas),其中Canvas就像是一块画布,你自定义控件的样式就是在它上面完成的。Canvas ,Paint等基本概念就不赘述了。2.下面就直接用demo来解释标题列出的方法先介绍save()和saveLayer()sa转载 2017-10-27 11:14:49 · 593 阅读 · 0 评论 -
为什么我们可以在非UI线程中更新UI
尊重原创转载请注明:From AigeStudio(http://blog.youkuaiyun.com/aigestudio)Power by Aige 侵权必究!炮兵镇楼看到这样的标题……估计N多人会说我是逗比…………因为很多盆友在学习Android(特别是从4.0之后开始入门的)的时候都会常看见或听到别人说我们更新UI呢要在UI线程(或者说主线程)中去更新UI,不要在子线程中更新UI,而转载 2017-10-27 16:39:44 · 313 阅读 · 0 评论 -
getWidth和getMeasureWidth区别
一。也許很多童鞋對getWidth()和getMeasuredWidth()的用法有很多的不解,這兩者之間有什麼樣的不同呢,網上也有各種不同的版本,但大多數都大同小異,從這個地方Ctrl+C,到另一個地方Ctrl+V,沒有把問題說透,也有一部分文章誤導了大家對這兩個方法的認識,我也是深受其害。這裡先糾正下面的一個版本的說法,Baidu上一搜一大堆的,可惜這種說法是錯的,所以希望大家就不要再盲目的轉转载 2017-10-13 10:06:08 · 1006 阅读 · 0 评论 -
MotionEvent详解
Android MotionEvent 详解,之前用了两篇文章 事件分发机制原理 和 事件分发机制详解 来讲解事件分发,而作为事件分发主角之一的 MotionEvent 并没有过多的说明,本文就带大家了解 MotionEvent 的相关内容,简要介绍触摸事件,主要包括 单点触控、多点触控、鼠标事件 以及 getAction() 和 getActionMasked() 的区别。Andro转载 2017-11-01 17:58:19 · 26008 阅读 · 5 评论 -
android 设备写入文件,立即断电重启后,文件丢失,数据没有保存问题
在android开发的过程中碰到写入文件后,立即断电重启,发现写入的文件丢失了写入时检查了,写入是没有失败的,经过查找资料可能是如下问题引起: Linux/Unix系统中,在文件或数据处理过程中一般先放到内存缓冲区中,等到适当的时候再写入磁盘,以提高系统的运行效率。可能是因为断电时,文件没有写入的物理介质中导致,解决办法如下: 在wri转载 2017-11-28 10:26:22 · 6092 阅读 · 2 评论 -
Activity启动----流程
转载请标明出处:一片枫叶的专栏好吧,终于要开始讲解Activity的启动流程了,Activity的启动流程相对复杂一下,涉及到了Activity中的生命周期方法,涉及到了Android体系的CS模式,涉及到了Android中进程通讯Binder机制等等,首先介绍一下Activity,这里引用一下Android guide中对Activity的介绍:An activity represents a ...转载 2017-11-21 10:59:43 · 491 阅读 · 0 评论 -
重写View的onMeasure方法
@Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { // TODO Auto-generated method stub super.onMeasure(widthMeasureSpec, heightMeasureSpec);转载 2017-05-09 18:34:12 · 333 阅读 · 0 评论 -
自定义View Measure过程
http://www.jianshu.com/p/1dab927b2f36转载 2017-05-09 18:31:22 · 276 阅读 · 0 评论 -
android的窗口机制分析------UI管理系统
Activity可以看做是整个Android系统的人机接口,它提供了一个窗口来绘制UI,每个Activity在启动时,我们都需要给它设置一个Content view,作为Activity所呈现的UI内容,这个过程是通过setContentView()方法来实现的。 众所周知,android系统中强化了view的概念,主要是体现在对view的管理上,Android中的view以2种转载 2016-12-28 18:23:45 · 281 阅读 · 0 评论 -
Android中的ViewRootImpl类源码解析
转载请注明出处 http://blog.youkuaiyun.com/qianhaifeng2012/article/details/51737370ViewRoot目前这个类已经没有了,是老版本中的一个类,在Android2.2以后用ViewRootImpl代替ViewRoot,对应于ViewRootImpl.java,他是链接WindowManager和DecorView的纽带,另外View的绘制转载 2016-12-28 18:42:55 · 1954 阅读 · 0 评论 -
JNI:使用RegisterNatives方法传递和使用Java自定义类
转载至JNI:使用RegisterNatives方法传递和使用Java自定义类 除了使用传统方法实现JNI外,也可以使用RegisterNatives实现JNI。和传统方法相比,使用RegisterNatives的好处有三点:1、C++中函数命名自由,不必像javah自动生成的函数声明那样,拘泥特定的命名方式;2、效率高。传统方式下,Java类call本地函数时,通常是依靠转载 2017-01-07 10:43:24 · 2049 阅读 · 0 评论 -
图文详解YUV420数据格式
很多人对YUV数据格式不清楚,以至于在做视频的时候出现了一些不可预知的错误(比如说图像带有点、颜色不对等)。今晚是周末放假,我就抽点时间来给大家介绍一下。 提示: 读下面的文字时,希望大家结合图片看,这样更易理解 在YUV420中,一个像素点对应一个Y,一个2X2的小方块对应一个U和V。对于所有YUV420图像,它们的Y值排列是完全相同的,因为只有Y的图像就是灰转载 2017-01-03 16:46:20 · 403 阅读 · 0 评论 -
自动化之旅—适配渠道包
概述前一篇文章(美团Android自动化之旅—生成渠道包)介绍了Android中几种生成渠道包的方式,基本解决了打包慢的问题。但是,随着渠道越来越多,不同渠道对应用的要求也不尽相同。例如,有的渠道要求美团客户端的应用名为美团,有的渠道要求应用名为美团团购。又比如,有些渠道要求应用不能使用第三方统计工具(如flurry)。总之,每次打包都需要对这些渠道进行适配。之前的做法是为转载 2017-02-08 10:11:54 · 340 阅读 · 0 评论 -
深入理解Android之Gradle
深入理解Android之Gradle格式更加精美的PDF版请到:https://pan.baidu.com/s/1boG2cLD下载weibo分享失效,请各位到百度云盘下载Gradle是当前非常“劲爆”得构建工具。本篇文章就是专为讲解Gradle而来。介绍Gradle之前,先说点题外话。一、题外话说实话,我在大法工作的时候,就见过Gradle。但转载 2017-02-08 10:28:47 · 622 阅读 · 0 评论 -
源码分析微信热修复框架Tinker的类加载过程
最近在设计一个安卓热修复的完整方案, 这两天终于有零零散散的时间可以考虑下如何选型了.之前项目中用过阿里的基于"安卓神器"Xposed框架的Dexposed,非常惊艳.但毕竟也有一年没更新了,很多东西都被后起之秀比如AndFix超越了~ 而且由于之前项目的特殊性,应用只安装在4.1和4.4系统上,这一点神奇的避开了了Dexposed的硬伤不支持5.0+.但做普通APP就绕不开这个硬伤了.正转载 2017-02-10 09:57:27 · 638 阅读 · 0 评论 -
Android开发中,那些让你相见恨晚的方法、类或接口
1、Throwable接口中的getStackTrace()方法(或者Thread类的getStackTrace()方法),根据这个方法可以得到函数的逐层调用地址,其返回值为StackTraceElement[];2、StackTraceElement类,其中四个方法getClassName(),getFileName(),getLineNumber(),getMethodName()在调转载 2017-04-07 17:02:33 · 774 阅读 · 0 评论 -
view绘图Path类
Android画图Path的使用/** * Paint类介绍 * * Paint即画笔,在绘图过程中起到了极其重要的作用,画笔主要保存了颜色, * 样式等绘制信息,指定了如何绘制文本和图形,画笔对象有很多设置方法, * 大体上可以分为两类,一类与图形绘制相关,一类与文本绘制相关。 *转载 2017-05-25 14:48:46 · 274 阅读 · 0 评论 -
苹果核 - Pairing Function —— vlayout 中使用数学的小场景
Longerian: 『关于vlayout,有人在 Github 上咨询DelegateAdapter 的构造方法里关于 hasConsistItemType 参数的含义。我稍微做了解释,但为了更好的介绍这一块知识点,我想起了之前团队里的同学(@Villadora)在设计这一块时的一个巧妙的处理,特此将其中的奥秘分享出来。本文原作者是Villadora,我转载并做了少许修改。』遇到的问转载 2017-05-16 17:42:37 · 604 阅读 · 0 评论 -
苹果核 - Tangram Android 的设计说明
Apr 24, 2017 • Longerian前言前段时间开源了团队内的vlayout项目,从 Github 上反馈来看,还是深受欢迎。 但如果仅仅是采用 vlayout 搭建页面,使用起来还不是特别灵活,在此基础之上,我们封装了一套动态化调整界面的模块,命名为 Tangram,现在同样已开源——Tangram Android和Tangram iOS。我们希望将它打造成某转载 2017-05-16 17:46:55 · 1313 阅读 · 0 评论 -
audioTrack调用的简单流程图
转载 2017-05-16 17:59:55 · 793 阅读 · 0 评论 -
android app进程保活一些方法
保活方法序号保活方法API限制效果&原理1正常的开启前台Servce无限制启动前台Service伴随着Notification,如正在播放音乐、正在导航,系统默认给进程高优先级2正常弹出悬浮窗无限制展示用户可见的窗口,如一键清理火箭,系统默认给进程高优先级3设置persistent=true无限制成为系统常驻进程4启动前台Service传入无意义NotificationAPI<=17...转载 2018-06-04 15:13:56 · 2513 阅读 · 0 评论