![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android
文章平均质量分 86
Shawn_Dut
github地址:https://github.com/zhaozepeng
展开
-
java/android 设计模式学习笔记(18)---中介者模式
设计模式总目录 java/android 设计模式学习笔记目录 特点UML类图示例与源码总结源码下载引用原创 2016-09-01 17:12:46 · 2372 阅读 · 2 评论 -
android MVC && MVP && MVVM分析和对比
面试的时候被问到这个问题,用过,也了解过,但是还是不够深入,总结一下。 MVC,MVP和MVVM是软件比较常用的三种软件架构,这三种架构的目的都是分离关注,避免将过多的逻辑全部堆积在一个类中,以android为例,在activity中既有UI的相关处理逻辑,又有数据获取逻辑,从而导致activity逻辑复杂不单一难以维护。为了一个应用可以更好的维护和扩展,我们需要很好的区分相关层级,要不然以后原创 2016-02-05 22:21:47 · 6272 阅读 · 2 评论 -
android 自定义状态栏和导航栏分析与实现
效果 android 4.4之后,系统是支持自定义状态栏和导航栏的,举个最典型的例子就是bilibili客户端了(iOS版本和android版本能用两套完全不一样符合各自系统的设计ui,良心啊~),顶部状态栏为粉色,底部导航栏为半透明色: 接着QQ最新的版本6.2也使用了状态栏透明风格,但是出来的效果在不同版本,不同手机上,显示的效果真是差异很大(4.3版本是无法使用状态栏透明风格的原创 2016-01-26 11:39:45 · 15434 阅读 · 3 评论 -
android IPC通信(中)-ContentProvider&&Socket
上篇博客主要介绍了sharedUserId&&Messenger作为IPC通信的用法,接着这篇博客要介绍到的是ContentProvider和Socket的详细使用方法。 android IPC通信(上)-sharedUserId&&Messenger android IPC通信(下)-AIDLContentProvider ContentProvider是android中提供的专门原创 2015-12-17 17:31:10 · 5054 阅读 · 0 评论 -
android IPC通信(上)-sharedUserId&&Messenger
看了一本书,上面有一章讲解了IPC(Inter-Process Communication,进程间通信)通信,决定结合以前的一篇博客android 两个应用之间的通信与调用和自己的理解来好好整理总结一下这块的知识,由于内容较多,这部分会分上中下三篇博客来仔细分析讲解,第一篇上篇要讲解的是sharedUserId和Messenger的使用方式。 android IPC通信(中)-ContentP原创 2015-12-10 15:10:04 · 9177 阅读 · 1 评论 -
android permission权限与安全机制解析(上)
总结整理了一下android权限相关的知识,由于篇幅过长,分为两篇博客来写,上篇博客主要是详解权限和安全,下篇主要是介绍android6.0权限适配问题: android permission权限与安全机制解析(下)uses-permission 用法为<uses-permission android:name=”string” android:maxSdkVersion=”integer”/原创 2016-02-16 22:16:53 · 29374 阅读 · 14 评论 -
Android application 和 activity 标签详解
Application 标签android:allowTaskReparenting android:allowTaskReparenting=[“true” | “false”] 表明了这个应用在 reset task 时,它的所有 activity 是否可以从打开它们的 task 栈中迁移到它们声明的 taskAffinity 亲和性(taskAffinity 属性可以查看我的这篇博客:翻译 2017-01-04 16:36:44 · 19725 阅读 · 0 评论 -
android ScollView 嵌套 WebView 底部空白,高度无法自适应解决
对技术感兴趣的同鞋加群 544645972 一起交流。 最近要做一个页面,需要 ScrollView 嵌套 WebView,怎么嵌套,怎么解决焦点和 touch 事件冲突,网上一大堆,这里就不赘述了,但是发现 WebView 从一个高度很高的网页加载一个高度很低的网页的时候,高度无法自适应了,造成底部会有一大片的空白,解决方案找到了挺多,描述一下:Google 官方建议 Google 建议不要在原创 2017-02-07 17:01:36 · 21255 阅读 · 25 评论 -
android scollview嵌套webview底部空白,高度无法自适应解决
最近要做一个页面,需要scollview嵌套webview,怎么嵌套,怎么解决焦点和touch时间冲突,网上一大堆,这里就不赘述了但是发现webview从一个高度很高的网页加载一个高度很低的网页的时候,高度无法自适应了,造成底部会有一大片的空白,解决方案找到了挺多,描述一下1.google建议不要在scrollview中使用webview,但是毕竟无法避免,产品的需求2.每次加原创 2015-08-11 11:15:19 · 16024 阅读 · 13 评论 -
android 最全缓存目录获取方式和函数解析
Android 开发中基本都要使用到文件的保存和读取操作,我们一般遇见的文件读写问题有几个:文件保存在哪?以及如何考虑相关函数,目录权限的问题?以及删除应用之后目录是否会随之删除的问题?接下来就来解析一下这几个相关目录的操作函数和解析。原创 2017-02-28 11:58:50 · 7852 阅读 · 2 评论 -
android 特殊用户通知用法汇总--Notification源码分析
一直用的android手机,用过这么多的app,平时也会遇到有趣的通知提醒,在这里先总结两种吧,notification和图标数字,有的以后看到再研究。还有,推广一下哈,刚刚建立一个Q群544645972,有兴趣的加一下,一起成长。Notification Notification应该算是最常见的app通知方式了,网上资料也很多,各种使用方法官方文档也已经写的非常详细了:http://develo原创 2016-04-12 14:40:48 · 15259 阅读 · 2 评论 -
java/android 设计模式学习笔记目录
其实很早就想开始总结设计模式了,无奈刚刚换完工作,工作太忙,平时周末也太懒,难得提起精神写一点,估计时间会花的很长,不过还是自己加油吧~~。 学习笔记,顾名思义,其实就是我在平时看书,工作的笔记而已,只不过分享出来让大家有什么错误的给指点一下,能学到知识当然也是很好的 ( ̄▽ ̄)” 。 PS:对技术感兴趣的同鞋加群544645972一起交流java/android设计模式介绍 设计模式原创 2016-04-24 20:15:55 · 9513 阅读 · 0 评论 -
Android 录音和摄像头权限适配
最近在研究权限适配的相关内容,整理以前的权限博客如下: android permission权限与安全机制解析(上) android permission权限与安全机制解析(下) Android 悬浮窗权限各机型各系统适配大全 这篇博客主要是介绍录音权限和摄像头权限的适配,android permission权限与安全机制解析(下)这篇博客中我介绍到了 6.0 之后危险权限的原创 2016-10-29 19:33:33 · 13506 阅读 · 1 评论 -
java/android 设计模式学习笔记(20)---迭代器模式
我们这篇博客来介绍一下迭代器模式(Iterator Pattern),又称为游标(Cursor Pattern)模式,是行为型设计模式之一。迭代器模式算是一个比较古老的设计模式,其源于对容器的访问,比如 Java 中的 List、Map、数组等,我们知道对容器对象的访问必然会涉及遍历算法,我们可以将遍历的方法封装在容器中,或者不提供遍历方法。如果我们将遍历的方法封装到容器中,那么对于容器类来说就承原创 2016-09-16 17:44:06 · 2243 阅读 · 6 评论 -
java/android 设计模式学习笔记(19)---状态模式
这篇博客我们来介绍一下状态模式(State Pattern),也是行为型设计模式之一。状态模式的行为是由状态来决定的,不同的状态下有不同的行为。状态模式和策略模式的结构类图几乎完全一样,但它们的目的、本质却完全不一样。状态模式的行为是平行的、不可替换的,策略模式的行为是彼此独立、可相互替换的。状态模式把对象的行为包装在不同的状态对象里,每一个状态对象都有一个共同的抽象状态基类;而策略模式可以想象成是原创 2016-09-04 19:14:59 · 2462 阅读 · 4 评论 -
java/android 设计模式学习笔记(16)---命令模式
这篇博客我们来介绍一下命令模式(Command Pattern),它是行为型设计模式之一。命令模式相对于其他的设计模式更为灵活多变,我们接触比较多的命令模式个例无非就是程序菜单命令,如在操作系统中,我们点击关机命令,系统就会执行一系列的操作,如先是暂停处理事件,保存系统的一些配置,然后结束程序进程,最后调用内核命令关闭计算机等,对于这一系列的命令,用户不用去管,用户只需点击系统的关机按钮即可完成如上原创 2016-08-14 18:30:19 · 2364 阅读 · 5 评论 -
java/android 设计模式学习笔记(21)---备忘录模式
这篇博客我们来介绍一下备忘录模式(Memento Pattern),也是行为型模式设计模式之一,备忘录模式又称为快照(Snapshot Pattern)模式或者 Token 模式,该模式用于保存对象当前状态,并且在之后可以再次恢复到此状态。备忘录模式实现的方式需要保证被保存的对象状态不能被对象从外部访问(an opaque object),目的是为了保护被保存的这些对象状态的完整性以及内部实现不向外原创 2016-09-24 13:07:08 · 2379 阅读 · 1 评论 -
getApplicationContext(), getBaseContext(), getApplication(), getParent()区别以及context的最终解析
这四个函数的区别原文链接http://stackoverflow.com/questions/6854265/getapplicationcontext-getbasecontext-getapplication-getparent翻译+我的总结如下1. getApplicationContext() :这个函数返回的这个Application的上下文,所以是与app挂钩的,所原创 2013-11-05 11:19:10 · 11872 阅读 · 6 评论 -
java/android 设计模式学习笔记(24)---访问者模式
这篇博客我们来介绍访问者模式(Visitor Pattern),这也是行为型设计模式之一。访问者模式是一种将数据操作与数据结构分离的设计模式,它可以算是 23 中设计模式中最复杂的一个,但它的使用频率并不是很高,大多数情况下,你并不需要使用访问者模式,但是当你一旦需要使用它时,那你就是需要使用它了。 访问者模式的基本想法是,软件系统中拥有一个由许多对象构成的、比较稳定的对象结构,这些对象的类都原创 2016-10-16 11:35:29 · 2019 阅读 · 0 评论 -
java/android 设计模式学习笔记(22)---模板方法模式
这篇博客我们来介绍一下模板方法模式(Template Method Pattern),也是[行为型设计模式](http://blog.csdn.net/self_study/article/details/51234377#t12)之一。在面向对象开发过程中,通常会遇到这样的一个问题,我们知道一个算法所需的关键步骤,并确定了这些步骤的执行顺序,但是,某些步骤的具体实现是未知的,或者说某些步骤的实现是会随着环境的变原创 2016-10-04 15:47:41 · 1615 阅读 · 0 评论 -
java/android 设计模式学习笔记(23)---解释器模式
这篇博客我们来介绍一下解释器模式(Interpreter Pattern),也是行为型设计模式之一,是一种用的比较少的设计模式,其提供了一种解释语言的语法或表达式的方式,该模式定义了一个表达式接口,通过该接口解释一个特定的上下文。在这么多的设计模式中,解释器模式在实际运用上相对来说要少很多,因为我们很少会去构造一个语言的文法。虽然你几乎用不到这个模式,但是看一看还是能受到一定的启发的。 转载请原创 2016-10-07 17:40:00 · 2308 阅读 · 2 评论 -
java/android 设计模式学习笔记(1)---单例模式
前段时间公司一些同事在讨论单例模式(我是最渣的一个,都插不上嘴 T__T ),这个模式使用的频率很高,也可能是很多人最熟悉的设计模式,当然单例模式也算是最简单的设计模式之一吧,简单归简单,但是在实际使用的时候也会有一些坑。原创 2016-04-24 20:16:37 · 11422 阅读 · 7 评论 -
android相关目录的存取方式与函数解析---全
getDatabasePath() getCacheDir()getFilesDir()openFileInput()openFileOutput()fileList()deleteFile()getDir()getCodeCacheDir()getPackageCodePath() getPackageResourcePath()getExternalFilesDir(String type)getExternalFilesDirs(String type)getExterna原创 2015-07-29 20:21:28 · 3167 阅读 · 0 评论 -
android WebView详解,常见漏洞详解和安全源码(上)
这篇博客主要来介绍 WebView 的相关使用方法,常见的几个漏洞,开发中可能遇到的坑和最后解决相应漏洞的源码,以及针对该源码的解析。 由于博客内容长度,这次将分为上下两篇,上篇详解 WebView 的使用,下篇讲述 WebView 的漏洞和坑,以及修复源码的解析。 下篇:android WebView详解,常见漏洞详解和安全源码(下) 转载请注明出处:http://blog.c原创 2017-02-12 18:19:55 · 11628 阅读 · 13 评论 -
Android 性能优化之内存泄漏检测以及内存优化(中)
上篇博客我们写到了 Java/Android 内存的分配以及相关 GC 的详细分析,这篇博客我们会继续分析 Android 中内存泄漏的检测以及相关案例,和 Android 的内存优化相关内容。Android 内存泄漏案例和检测 常见的内存泄漏案例 Android 内存泄漏检测与修复 Android 内存优化引用 http:/原创 2017-04-10 20:49:32 · 17679 阅读 · 1 评论 -
android仿最新版本微信相册--附源码
最新更新:添加对android 6.0权限动态申请机制适配:github地址 仿微信相册选择图片,查看大图,写的不太好,希望评论指出不足,谅解,先介绍一下我的基本思路 第一步获取手机上的所有图片路径: Uri uri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI; Content原创 2017-04-06 19:59:44 · 9611 阅读 · 2 评论 -
android仿最新版本微信相册--附源码
android 仿最新微信相册6.1微信相册6.2微信相册原创 2015-06-23 19:48:31 · 13534 阅读 · 20 评论 -
Android 悬浮窗权限各机型各系统适配大全
这篇博客主要介绍的是 Android 主流各种机型和各种版本的悬浮窗权限适配,但是由于碎片化的问题,所以在适配方面也无法做到完全的主流机型适配,这个需要大家的一起努力,这个博客的名字永远都是一个将来时,感兴趣或者找到其他机型适配方法的请留言告诉我,或者加群544645972一起交流一下,非常感谢~ 相关权限请看我的另一篇博客:android permission权限与安全机制解析(下),或者关原创 2016-10-23 15:23:17 · 69635 阅读 · 35 评论 -
Android O新特性和行为变更总结
原文地址(QQ音乐微信公众号首发): https://mp.weixin.qq.com/s?__biz=MzI1NjEwMTM4OA==&mid=2651232573&idx=1&sn=56963d1ecb1eeea2c82ec88d9667c0b0&chksm=f1d9e45ec6ae6d480b1b8ab73b1. Android O 新特性 前段时间解决了几个 QQ 音乐多窗口屏幕显示的 b原创 2017-07-10 14:22:36 · 9291 阅读 · 0 评论 -
android WebView详解,常见漏洞详解和安全源码(下)
上篇博客主要分析了 WebView 的详细使用,这篇来分析 WebView 的常见漏洞和使用的坑。 上篇:android WebView详解,常见漏洞详解和安全源码(上) 转载请注明出处:http://blog.csdn.net/self_study/article/details/55046348 对技术感兴趣的同鞋加群 544645972 一起交流。WebView 常见漏洞原创 2017-02-13 11:29:23 · 13501 阅读 · 8 评论 -
Android 性能优化之内存泄漏检测以及内存优化(下)
上篇博客我们写到了 Android 中内存泄漏的检测以及相关案例,这篇我们继续来分析一下 Android 内存优化的相关内容。 上篇:[Android 性能优化之内存泄漏检测以及内存优化(上)](http://blog.csdn.net/self_study/article/details/61919483)。 中篇:[Android 性能优化之内存泄漏检测以及内存优化(中)](http://blog.c原创 2017-04-10 20:50:06 · 5246 阅读 · 2 评论 -
Android中图片压缩分析(上)
此文章首发:https://mp.weixin.qq.com/s/QZ-XTsO7WnNvpnbr3DWQmg一、前言在 Android 中进行图片压缩是非常常见的开发场景,主要的压缩方法有两种:其一是质量压缩,其二是下采样压缩。前者是在不改变图片尺寸的情况下,改变图片的存储体积,而后者则是降低图像尺寸,达到相同目的。由于本文的篇幅问题,分为上下两篇发布。二、Android 质量压缩逻辑在Andro原创 2017-11-12 11:50:17 · 2492 阅读 · 0 评论 -
Android中图片压缩分析(下)
文章首发QQ音乐技术公众号:https://mp.weixin.qq.com/s/H9Tz1n4O2-Aawgu7p-XL5w一、Android 尺寸压缩逻辑针对图片尺寸的修改其实就是一个图像重新采样的过程,放大图像称为上采样(upsamping),缩小图像称为下采样(downsampling),这里我们重点讨论下采样。在 Android 中图片重采样提供了两种方法,一种叫做邻近采样(Nearest原创 2017-11-12 11:52:05 · 2283 阅读 · 1 评论 -
Android 性能优化之内存泄漏检测以及内存优化(上)
在Java中,内存的分配是由程序完成的,而内存的释放是由垃圾收集器(Garbage Collection,GC)完成的,程序员不需要通过调用函数来释放内存,但也随之带来了内存泄漏的可能原创 2017-04-10 20:49:13 · 11705 阅读 · 0 评论 -
2015年年终总结--迷茫中前进
说实话,第一次在自己的技术博客写非技术文章,可是最近感触颇多,突然发现自己的感情居然这么细腻= =,写一下吧,写的很乱,大家见谅。 今年年初从北京辞职来到深圳,说实话,做出这个决定,我挺愧疚的,其中最最对不起的就是我们组老大,人特别好,反正就是性格好,技术好,对我真是非常耐心,我非常感谢他,做出辞职这个决定我真的有点对不起他,这一年中有时候睡觉前想到这个都想当面说声对不起,对不起。哎,终归还是原创 2015-12-29 17:41:21 · 5035 阅读 · 70 评论 -
android 不能在子线程中更新ui的讨论和分析
问题描述 做过android开发基本都遇见过ViewRootImpl$CalledFromWrongThreadException,上网一查,得到结果基本都是只能在主线程中更改ui,子线程要修改ui只能post到主线程或者使用handler之类。但是仔细看看exception的描述并不是这样的,“Only the original thread that created a view hierar原创 2016-01-26 18:54:25 · 16204 阅读 · 7 评论 -
java/android 设计模式学习笔记(5)---对象池模式
这次要介绍一下对象池模式(Object Pool Pattern),这个模式为常见 23 种设计模式之外的设计模式,介绍的初衷主要是在平时的 android 开发中经常会看到,比如 ThreadPool 和 MessagePool 等。 在 java 中,所有对象的内存由虚拟机管理,所以在某些情况下,需要频繁创建一些生命周期很短使用完之后就可以立即销毁,但是数量很大的对象集合,那么此时 GC原创 2016-05-29 23:25:19 · 10970 阅读 · 0 评论 -
android IPC通信(下)-AIDL
android IPC通信(上)-sharedUserId&&Messenger android IPC通信(中)-ContentProvider&&Socket 这篇我们将会着重介绍AIDL的使用方式和原理,要介绍AIDL先要简单介绍一下 Binder,而且 Messenger,ContentProvider 和 AIDL 的最底层都是使用的 Binder。 相关博客介绍:原创 2015-12-17 17:30:23 · 22761 阅读 · 8 评论 -
java/android 设计模式学习笔记(8)---桥接模式
这篇博客我们来介绍一下桥接模式(Bridge Pattern),它也是结构型设计模式之一。桥接,顾名思义,就是用来连接两个部分,使得两个部分可以互相通讯或者使用,桥接模式的作用就是为被分离了的抽象部分和实现部分搭桥。在现实生活中也有很多这样的例子,一个物品在搭配不同的配件时会产生不同的动作和结果,例如一辆赛车搭配的是硬胎或者是软胎就能够在干燥的马路上行驶,而如果要在下雨的路面行驶,就需要搭配雨胎了,原创 2016-06-10 19:59:10 · 13817 阅读 · 3 评论 -
android深入解析Activity的launchMode启动模式,Intent Flag,taskAffinity
最近看到一篇文章讲launchMode,想到以前的一次面试,就问了这一个问题,最基本的大家都知道,但是详细的我就迷糊了,最终失败了,所以在此总结一下,希望能够帮助一下大家LaunchMode launchMode分为四种: standard standard启动模式为最基本的启动模式,默认为该种启动模式,特点就是每当发送一个intent请求打开该activity时,都会创建一个新的ac原创 2015-12-09 14:17:40 · 17634 阅读 · 9 评论