Android
文章平均质量分 87
android
bigShong
原字节跳动,智能手机大厂JAVA,go服务端研发,丰富的高并发系统架构经验,开源社区积极参与者。
展开
-
View动画、activity切换动画、属性动画及其原理
View动画View动画包括:旋转、平移、缩放、透明度、透明度、帧动画一般使用xml定义动画或者动画集,在代码中加载资源文件,调用view的startAnimation()启动动画。可可以设置动画监听器。自定义View动画继承Animation类,实现initialize()和applyTransformation()方法该方法两个参数一个是动画已经执行的时间Viewgroup布局动画布局动画就是指原创 2016-07-24 08:38:50 · 1209 阅读 · 0 评论 -
Anddroid 性能优化一 UI性能优化
UI性能优化思路就是减少ui加载的时间,提高流畅性。布局优化思路:减少布局层级,减少布局复杂度,减少绘制时间1.在不需要嵌套的情况下,使用LinearLayout或者FrameLayout代替RelativeLayout2.需要嵌套情况下,使用RelativeLayout代替LinearLayout。3.使用 标签标签用于布局的复用,标签用于被复用的布局中,减少布局的嵌套层级。include标签只支原创 2016-08-21 13:30:13 · 424 阅读 · 0 评论 -
Android IPC机制之 Android的各种IPC方式
使用BundleBundle实现了Parcelable接口,可以在四大组建之间传递数据,使用Intent将Bundle传递过去,Bundle支持的数据类型: 基本数据类型,实现parcel的数据类型,bundle等使用文件共享数据将对象序列化到文件系统,然后在另一个进程中进行反序列化,虽然得到的对象内容是一样的,但是不是同一个对象了,该方式需要考虑并发读写的问题使用MessagerMessager原创 2016-08-12 23:48:25 · 1259 阅读 · 0 评论 -
Sqlite数据库基础
1.Sqlite基本介绍SQLite是一个Acid的数据库管理系统,不是一般的C/S结构,而是被连接到程序中,成为应用的一部分,减少了跨进程通信的开销,采用写入数据时加锁,但同时也支持多任务操作。SQLite只支持部分触发器,不支持对Alter table的删除和修改列,不进行类型检查。主要优点:1.零配置,无需安装。 2.跨平台, 3.最大支持2T 4.足够小,3万行代码 5.开源主要有两原创 2016-08-21 11:35:20 · 1711 阅读 · 0 评论 -
十大排序算法总结
排序算法包括:内排序和外排序内排序包括:插入排序,选择排序,交换排序,归并排序,分配排序以下排序均指从小到大排序。均通过测试交换排序冒泡排序思想:从左到右扫描,如果左边大于右边则交换,一次排序之后,最大数就排在了最后面,经过n-1次排序就排好了。时间复杂度:O(n2)/** * 交换数组的两个位置值 ps : 快速排序不能使用想减的方式交换 * * @param ar原创 2016-09-02 15:41:57 · 790 阅读 · 0 评论 -
Android IPC机制之 理解Binder
服务端 IBinder类的创建Binder是Android一个类实现了Ibinder接口,Binder也是Android跨进程通信的一种方式,Binder是连接Android各种manager和ManagerService的桥梁,Binder还是服务端和客户端通信的媒介, bindService时,服务端会返回一个包含了服务端一些方法的Binder对象,通过该对象我们可以调用服务端的服务。我们通常原创 2016-08-12 23:47:36 · 436 阅读 · 0 评论 -
Android IPC机制之IPC概念、Android 多进程和相关基础知识
1.IPC 的基本概念1.1 IPC的使用场景IPC 即 Inter-Process Communication 进程间通信,IPC用于多进程,而Android的多进程情况一般有:1.一个应用需要在多进程模式下运行,例如,一些组件需要再单独的进程中运行,或者,为了增加应用可使用的内存。2.当前应用需要获取其他应用的数据,例如content provider。2.Android的多进程模式Androi原创 2016-08-12 23:46:41 · 446 阅读 · 0 评论 -
数据结构总结-- 树和二叉树
树的性质1.树的结点数 = 结点度数和 + 1;(n0 + n1 + nm ….+1) 2.度为m的数第i层最多m^(i-1)次方个结点 3.高度为h的m次树,最多(m^h)/(m-1) 4.n个结点的m次树,最小高度logm(n(m-1)+1)二叉树的定义结点定义,根节点,左孩子,右孩子 java代码:/** * 结点类 * * @author Admini原创 2016-09-03 20:25:18 · 694 阅读 · 2 评论 -
View详解之一View的绘制原理
View 是开发中最常用的类之一,我们来看看View的真面目吧。首先,先了解几个概念1.Windowwindow是个抽象类,用于承载View和Viewgroup的类,我们在activity中添加View的过程,其实承载这些View的都是Window,只要有View的地方就有Window,比如说Toast,Dialog等。2.Window窗口的布局层次结构在activity中View的从层次结构如下图原创 2016-07-10 12:17:50 · 1488 阅读 · 0 评论 -
Android 性能优化二 内存优化
Android内存管理是由JVM进行管理的,不熟悉可以参考http://note.youdao.com/yws/public/redirect/share?id=eabcd96832004fb98c00afd34b42cfde&type=falsehttp://note.youdao.com/yws/public/redirect/share?id=59ae46025f3eaac9eee144e8e原创 2016-08-21 13:52:03 · 660 阅读 · 0 评论 -
Android 广播
广播是典型的观察者模式,发送发不关心接收方是否收到,也不关心接收方如何处理,实现发送方和接收方的解耦。Android广播分为,普通广播,有序广播,本地广播,和sticky广播普通广播普通广播,通过sendBroadcast()方法发送的广播,优点:消息传递效率高。缺点:1.所有接收器的执行顺序不一致,广播消息的处理结果不能发送给下一个接受者。2.不能终止广播的传播,直到没有接受者为止。使用步骤:1.原创 2016-08-21 13:12:48 · 421 阅读 · 0 评论 -
View详解之二View的事件体系
这周接着上次的学习,继续来学习View相关知识,View的事件体系。首先,掌握几个知识点。View的位置参数先上图,左图中left 、top、right、bottom分别是四个顶点相对于父容器的值,右图中当view反生平移时,view的top值是不会改变的x、y、transitionX、transitionY会反生改变,并且相对于父容器而言。y = top + transitionY;x= left原创 2016-07-16 19:18:53 · 650 阅读 · 0 评论 -
Android线程和线程池
线程是系统调度的最小单位。Android主线程和子线程主线程用于运行四大组件及用户的交互,子线程用于执行耗时任务,网络请求,io操作等AsyncTaskAsyncTask封装了线程池和Handler,是一种轻量级的异步任务类,特别耗时的任务不建议使用。有几个核心方法:onPreExecute(),任务执行前调用在主线程执行doInBackGround(),在子线程执行,可以在内部调用publishP原创 2016-07-17 19:10:34 · 600 阅读 · 0 评论 -
View详解之三自定义View
自定义View的分类1.继承View,重写onDraw()实现不规则效果,不方便通过组合布局,需要使用ondraw来绘制实现,这种方式需要在onmeasure处理wrap_content一般在Measure时候Atmost的spec_mode中给定默认值,和padding,在ondraw中绘制时考虑padding。2.继承ViewGroup 实现特殊的layout用于内容不固定的layout,实现很原创 2016-07-16 21:21:32 · 655 阅读 · 0 评论 -
深入学习activity之不同情况的生命周期
1.Activity的生命周期1.典型情况的生命周期## 2.异常情况的生命周期### 2.1资源相关的系统配置发生改变导致activity的重新创建配置改变不想重新创建activity的方法资源不足导致activity被杀死原创 2016-06-19 14:08:01 · 540 阅读 · 0 评论 -
Android消息机制
消息机制本质上就是handler的工作机制,这里涉及到handler,message queue , looper ,Thread Local 等知识,按照惯例先来了解基础知识。Thread Local这是一个用于线程内部数据存储的类是一个泛型类,在主线程创建的一个Thread Local 对象在可以使用threadLocal.set()在子线程赋值,也可以在threadLocal.g...原创 2016-07-17 15:46:28 · 1833 阅读 · 0 评论 -
Android的Window和WindowManager
Window和Windowmanagerwindow是Android视图View显示的容器,activity、Dialog、Toast中的View都是通过window来呈现的,它是一个抽象类,只有一个实现类phonewindow。windowmanager是访问window的唯一入口,window内添加、删除、更新View的操作都由windowmanager来管理,WindowManager的功能是原创 2016-07-24 09:04:23 · 557 阅读 · 1 评论 -
Android高效加载图片和缓存策略LRU,DiskLRU
1.高效加载图片加载图片主要用到BitmapFactory类的四个方法:decodeFile()从文件中加载,decodeResource()从资源文件中加载,decodeStream()从输入流,decodeByteArray()从自己数组中加载, decodefile和decodeResource调用decodeStream实现,四个方法底层都是有native方法实现的。高效加载图片思想:根据原创 2016-07-24 08:51:25 · 1401 阅读 · 0 评论 -
JobIntentService详解及使用
Android o新特性–后台限制Android8.0对系统资源的管控更加严格,添加了后台限制规则。如果满足以下任意条件,应用将被视为处于前台:具有可见 Activity(不管该 Activity 已启动还是已暂停)。具有前台服务。另一个前台应用已关联到该应用(不管是通过绑定到其中一个服务,还是通过使用其中一个内容提供程序)。 例如,如果另一个应用绑定到该应用的服务,那么该应用处于前台:IM原创 2017-11-06 20:49:09 · 32504 阅读 · 10 评论