- 博客(30)
- 资源 (7)
- 问答 (1)
- 收藏
- 关注

原创 Android中内存泄露与如何有效避免OOM总结
Android系统为每个应用程序分配的内存有限,当一个应用中产生的内存泄漏比较多时,就难免会导致应用所需要的内存超过这个系统分配的内存限额,这就造成了内存溢出而导致应用Crash。内存泄露的危害:只有一个,那就是虚拟机占用内存过高,导致OOM(内存溢出),程序出错。了解了内存泄漏的原因及影响后,我们需要做的就是掌握常见的内存泄漏,并在以后的Android程序开发中,尽量避免它。
2016-06-03 15:09:49
5552
原创 android中利用矢量图VectorDrawable打造酷炫动画
1. 初识矢量图SVG与VectorDrawable位图:有一个一个像素点组成的,放大会失真矢量图:实际是一条path路径,每一个像素点是根据GPU实时计算出来,放大缩小不会失真SVG和Vector的区别:SVG,即Scalable Vector Graphics 矢量图,这种图像格式在前端中已经使用的非常广泛了,详见WIKI:https://en.wikipedia.
2017-11-21 11:27:22
2562
1
原创 联动滑动效果及不同Item效果的RecyclerView
这几天项目中做了一个页面滑动效果,今天总结了一个小demo来分享一下,支持滑动时联动效果的布局,以及支持不同Item效果的RecyclerView
2017-11-05 16:32:15
959
原创 Android中你需要知道的(一)
一、Activity的启动过程ActivityManagerService和ActivityStack位于同一个进程中,而ApplicationThread和ActivityThread位于另一个进程中。其中,ActivityManagerService是负责管理Activity的生命周期的,ActivityManagerService还借助ActivityStack是来把所有的Activit
2016-09-10 12:16:01
1086
翻译 Fragment提交transaction导致state loss异常
译文链接Fragment transaction commit state lossFragment提交transaction导致state loss异常java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState at android.support.v4.app.
2016-08-31 15:52:16
490
原创 修改Android源码,开启adb的Root权限
adb 的root 权限是在system/core/adb/adb.c 中控制。主要根据ro.secure 以及 ro.debuggable 等system property 来控制。默认即档ro.secure 为0 时,即开启root 权限,为1时再根据ro.debuggable 等选项来确认是否可以用开启root 权限。为此如果要永久性开启adb 的root 权限,有两种修改的方式:1
2016-08-31 09:52:07
8608
2
转载 Binder机制
https://github.com/GeniusVJR/LearningNotes/blob/master/Part1/Android/Binder%E6%9C%BA%E5%88%B6.md首先Binder是Android系统进程间通信(IPC)方式之一。Binder使用Client-Server通信方式。Binder框架定义了四个角色:Server,Client,ServiceMa
2016-08-23 17:12:53
1731
原创 java反射机制及在Abdroid的应用
想写一篇比较短的博客,总结一下java反射机制以及Android中的应用,因为博客太长很多人看着会头疼,而且多去重复那些反射机制的具体实现方式也没啥意义,所以想写的简单易懂些,别过段时间自己看着都头疼。如果想了解反射机制的具体实现,网上有很多,可以搜一下。 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属
2016-08-16 18:00:52
1680
原创 框架模式MVC与MVP在Android中的应用
很多人在开发Android项目时没有考虑过架构模式的问题,以至于随着项目的增大,Activty或者Fragment中代码也会越来越多,导致项目的维护变的越来越复杂。然而在Android中使用比较多的两种框架模式就是MVC和MVP,下面我将分别介绍一下这两种框架模式。一、MVC框架模式 MVC全名是Model View Controller,是模型(model)-视图(view
2016-06-22 12:10:43
11290
2
原创 Android中进程间通信(IPC)方式总结
IPC为进程间通信或跨进程通信,是指两个进程进行进程间通信的过程。在PC和移动设备上一个进程指的是一个程序或者一个应用,所以我们可以将进程间通信简单理解为不同应用之间的通信,当然这种说法并不严谨。 在Android中,为每一个应用程序都分配了一个独立的虚拟机,或者说每个进程都分配一个独立的虚拟机,不同虚拟机在内存分配上有不同的地址空间,这就导致在不同的虚拟机互相访问数据需要借助其他手
2016-06-11 13:18:01
6588
原创 Android_Service多线程断点下载
Android中实现单线程下载文件是比较容易的,可是要使得自己的应用支持多线程断点下载就要考虑到很多细节了,今天我们一起来探讨一下多线程断点下载时怎么实现的。首先先画一张图说明一下Android中下载文件的大致流程:上面的图介绍的是比较清楚的,我们要下载一个文件,首先需要在Activity中选择需要下载的目标,然后把下载的任务交个Service中(这里为什么要交给Service
2016-06-09 18:56:45
1870
原创 LruCache源码浅析
移动设备开发中,由于移动设备(手机等)的内存有限,所以使用有效的缓存技术是必要的。android提供来一个缓存工具类LruCache,开发中我们会经常用到,下面我们就具体分析一下LruCache。LruCache缓存数据是采用持有数据的强引用来保存一定数量的数据的。每次用到(获取)一个数据时,这个数据就会被移动(一个保存数据的)队列的头部,当往这个缓存里面加入一个新的数据时,如果这个缓存已经满
2016-06-05 16:20:56
5145
原创 Android中内存泄漏与OOM避免措施总结
文章博客地址:http://blog.youkuaiyun.com/gjnm820/article/details/51579080 一、关于OOM与内存泄露的概念 我们在Android开发过程中经常会遇到OOM的错误,这是因为我们在APP中没有考虑dalvik虚拟机内存消耗的问题。 1、什么是OOM OOM:即OutOfMemoery,顾名思义就是指内存溢出了。内存溢出是指A...
2016-06-04 09:07:28
457
原创 HashTable和HashMap区别
一、HashMap简介HashMap是基于哈希表实现的,每一个元素是一个key-value对,其内部通过单链表解决冲突问题,容量不足(超过了阀值)时,同样会自动增长。HashMap是非线程安全的,只是用于单线程环境下,多线程环境下可以采用concurrent并发包下的concurrentHashMap。HashMap 实现了Serializable接口,因此它支持序列化,实现了Clon
2016-06-01 15:25:25
9652
1
原创 HTTP与HTTPS比较
一、简要介绍概念HTTP 超文本传输协议,是一种详细规定了浏览器和万维网服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议。HTTPS HTTPS是基于HTTP开发的,它是以安全为目标的HTTP通道,简单讲是HTTP的安全版。它使用安全套接字层(SSL)进行信息交换。二、HTTPS和HTTP的区别 第一:HTTPS协议需要到CA申请证书,
2016-05-31 22:42:45
871
原创 HTTP、TCP、Socket区别与联系
TPC/IP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP是应用层协议,主要解决如何包装数据,两者本质上没有可比性,何况HTTP协议是基于TCP连接的。而Socket 是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。 关于TCP/IP和HTTP协议的关系,网络有一段比较容易理解的介绍:“我们在传输数据时,可以只使用(传输层)TCP/IP协议,但是那样的话,
2016-05-30 20:03:29
676
原创 算法:最长公共子序列
好久没做算法题了,现在发现自己的算法能力非常薄弱,所以特意练练,顺便做个笔记方便以后查看。今天整理一下最长公共子序列,最长公共子序列的问题常用于解决字符串的相似度,是一个非常实用的算法,作为码农,此算法是我们的必备基本功。一、最长公共子序列概念:最长公共子序列,是指两个字符串可具有的长度最大的公共的子序列。听着好像有点绕口,举个例子吧:上面标红的就是最长公共子序列,是不
2016-05-21 12:22:06
2657
原创 java线程总结
一、进程和线程的比较进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。进程的特点,每一个进程都有自己的独立的一块内存空间、一组资源系统。其内部数据和状态都是完全独立的。线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,
2016-05-17 08:43:39
575
原创 java中NIO总结
1、什么是NIONIO即New IO,这个库是在JDK1.4中才引入的。NIO和IO有相同的作用和目的,但实现方式不同,NIO弥补了原来的I/O的不足,它在标准Java代码中提供了高速的、NIO主要用到的是块,所以NIO的效率要比IO高很多。NIO和IO最大的区别是数据打包和传输方式。IO是以流的方式处理数据,而NIO是以块的方式处理数据。面向流的IO一次一个字节的处理数据,一
2016-05-15 23:13:05
547
原创 BroadcasReceivert总结
一、BroadcasReceivert简介BroadcastReceiver是Android系统的四大组件之一,它适用于接收程序所发出的Broadcast Intent并作出相应的,程序启动BroadcasReceivert只需要两步:1)创建需要启动的BroadcasReceivert的Intent;2)调用Context的sendBroadcast()或sendOrderBro
2016-05-11 16:27:09
711
原创 AsyncTask总结
首先明确Android之所以有Handler和AsyncTask,都是为了不阻塞主线程(UI线程),且UI的更新只能在主线程中完成,因此异步处理是不可避免的。 Android为了降低这个开发难度,提供了AsyncTask。AsyncTask就是一个封装过的后台任务类,顾名思义就是异步任务。很多人说AsyncTask的设计主要是为了方便开发者在子线程中更新UI,这种说法其实不对的,As
2016-05-10 15:56:56
858
转载 java synchronized详解
Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。 一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。 二、然而,当一个线程访问object的一个synch
2016-04-01 09:42:49
602
转载 Android属性动画完全解析(中),ValueAnimator和ObjectAnimator的高级用法
转载请注明出处:http://blog.youkuaiyun.com/guolin_blog/article/details/43536355大家好,在上一篇文章当中,我们学习了Android属性动画的基本用法,当然也是最常用的一些用法,这些用法足以覆盖我们平时大多情况下的动画需求了。但是,正如上篇文章当中所说到的,属性动画对补间动画进行了很大幅度的改进,之前补间动画可以做到的属性动画也能做到,补间动
2016-03-30 11:19:46
493
转载 Android属性动画完全解析(上),初识属性动画的基本用法
转载请注明出处:http://blog.youkuaiyun.com/guolin_blog/article/details/43536355在手机上去实现一些动画效果算是件比较炫酷的事情,因此Android系统在一开始的时候就给我们提供了两种实现动画效果的方式,逐帧动画(frame-by-frame animation)和补间动画(tweened animation)。逐帧动画的工作原理很简单,其实
2016-03-30 11:17:07
484
转载 室内定位技术将会怎样颠覆传统商业运营?
去到购物中心的地下停车场,购完物后,是不是有找不着停车位的时候?想象一下,下载一个商场的有全景功能APP,就可以直接以实景方式,引导你快速找到自己的车,省去在迷宫一样的地下停车场晕头转向的烦恼。这其实是一种名为室内自动定位技术的最简单的应用之一。类似如在商场里借助室内定位技术快速找到出口和电梯,带孩子的家长可以用来跟踪小孩的位置避免在卖场中走走。甚至,当你将手提包落在商场的某一处,刚走出几
2016-03-27 20:43:16
1242
原创 Android中用户手势检测详述(OnCliskListener、OnTouchListener和GestureDetecter)
以前做项目只是简单应用一些点击事件以及滑动事件,没有系统的学习手势检测,今天特意学习了一下,顺便分享一下,以便于以后的记忆一、先说点击事件:点击事件很简单,我们只要绑定点击事件的监听接口并实现点击事件的监听方法,在onClik方法中进行点击事件的处理即可。如点击事件监听接口OnClickListener、长按事件的监听接口OnLongClickListener等。下面是一个点击事件的简单实
2016-03-23 20:24:22
1285
原创 android页面滑动时,顶部title背景渐变的实现
在淘宝的商品详情页,我们会看到顶部的title背景颜色随着scrollView的上下滑动而渐变,这样的功能在我们应用中会经常用到,今天就来说一下我实现下这种功能方法,当然方法可能比较笨,看到博客的大牛,希望能得到你们的指点。首先先解释一下基本原理:我们的思路是重写ScrollView,实现ScrollView的滑动监听,在ScrollView滑动的过程中,对顶部Title做出相应的处理:看
2016-03-05 10:31:29
7837
原创 ScrollView嵌套ViewPager滑动冲突的解决
我们在开发过程中,难免会用到ScrollView嵌套ViewPager的情况,比如淘宝商品详情页面。但当我们用普通的ScrollView嵌套ViewPager是,会出现滑动冲突的情况,原因很简单:当我们左右滑动ViewPager时,我们的手指会有一点上下滑动的浮动,而ScrollView监听了上下滑动事件,这就造成滑动冲突。解决办法也很容易,我们只需要重写ScrollView,在ScrollV
2016-03-02 23:22:19
1327
原创 android中Service组件总结
Server是android四大组件之一,它与Activity非常类似,最大的区别就是Activity在前台运行,主要作用于界面的交互,而server是在后台运行的一个服务,它没有界面。Server的创建步骤:(1)定义一个继承Server的子类;(2)在AndroidManifest.xml文件中配置该Server。
2015-12-15 22:23:14
2212
原创 android:scaleType、android:layout_alignBottom、layout_below学习
以前学习比较马虎,对布局属性不是太了解,因此今天看了一个布局,介绍一下里面的三个属性。先说layout_alignBottom与layout_below:android:layout_alignBottom=" @+id/1 " //指的是元素2下边缘与元素1对其,如下图android:layout_below = " @id/1 " //指的是元素2在元素1的下方
2015-11-19 14:12:05
901
Android_Service多线程断点下载
2016-06-09
BroadcasReceivert的两种注册模式
2016-05-11
这是服务器端获取的json,但不知道怎样转成对象,这是map转化的json吗?该怎么转化
2015-10-03
TA创建的收藏夹 TA关注的收藏夹
TA关注的人