- 博客(34)
- 收藏
- 关注
原创 Java 设计模式之装饰者模式
装饰者模式,是非常容易理解又非常常用的结构型设计模式。像Android中的Context、Java中的InputStream都用到了装饰者模式。来吧,让我们一探究竟。
2021-02-03 23:04:09
282
原创 Android 已有项目插件化改造导引
“需要一款管理APP,对相关的多款APP进行管理,包括统一登录、安装、卸载、更新等”——当我们遇到这样的业务需求,我们自然会想到热门的 “插件化技术”,而我们采用的是一种另类的 “插件化” 解决方案。
2019-12-20 16:29:49
631
原创 Java 设计模式之代理模式
代理模式,尤其动态代理,在我们的开发中及第三方库中应用广泛,本讲通过示例代码,来讨论静、动态代理原理及其实现方式等。
2019-10-14 21:54:24
661
1
原创 Android 老生常谈之消息机制
Android 消息机制,是 Android 开发者老生常谈的话题了,自己到底能不能说得清楚,需要我们扪心自问。本文不对源码详细分析,重在梳理流程,了解其工作机制。
2019-10-09 16:25:31
296
原创 Java 设计模式之静态工厂、工厂方法、抽象工厂和 Builder 模式的区别
前面几篇文章,我们学习了几种工厂模式和 Builder 模式,都可以用来得到产品对象,那他们有什么区别呢?我们该怎么选择呢?
2019-09-27 21:58:36
1423
原创 Java 设计模式之工厂方法模式
工厂方法模式,作为应用相当广泛的设计模式,是我们必须要掌握的,本文是在上一讲 “静态工厂方法模式” 的基础上继续讨论起来的,通过代码示例+Java源码介绍的方式,帮助大家理解这种设计模式。
2019-09-18 01:00:31
818
原创 Java 设计模式之静态工厂方法模式
静态工厂方法模式,又称为简单工厂模式,是最简单最易理解的工厂模式,本文通过一个 “月饼” 例子,一起来学习下这种设计模式吧!
2019-09-17 01:50:16
2336
原创 Java 设计模式之单例模式
单例模式,作为应用最广的设计模式,我们真的能将它说清楚吗?本文介绍 7 种单例模式的用法,并详细分析了背后的原理,希望对大家有所裨益。
2019-09-11 23:48:38
705
原创 Android 老生常谈之MVC与MVP
要搞透彻 MVP,MVC 的演进历史是一定要了解的。MVP 是由 MVC 一步步演进而来,不独立于 MVC 存在,可以认为是 MVC 的一种形式。这篇文章里会详述 MVC 的演进历史,及 MVP 的一些变形,不仅搞清楚怎么用,还要搞明白为什么这么用。
2019-09-03 17:11:25
1199
原创 Android 指纹识别,提升APP用户体验,从这里开始
基于 Google Api 实现指纹验证的功能,支持 Android 6.0+ 和 Android 9.0+,发布在Github,依赖后仅需两三行代码即可实现指纹验证的功能
2019-07-15 07:17:54
5220
20
原创 Android 超级轻量的版本更新库AppUpdate
一款超级轻量的版本更新库。支持版本更新常见功能,支持接口返回文件二进制流的形式更新,支持断点下载等。
2019-07-09 02:17:35
11483
8
原创 Android 组件化,从入门到不可自拔
组件化能够显著提高Android项目开发效率,支持不同业务组件单独打包或者组合打包,可以说是Android开发者必备技能。本文通过一个极其简单的实践案例,梳理了组件化的配置过程,并辅以全部源码,希望对还没有应用组件化的开发者有些帮助。
2019-04-19 02:54:33
13420
3
原创 Android 年月选择器,基于必酷公司的竖直滑动选择器WheelView进行实现
基于Bigkoo的WheelView,采用DialogFragment+Builder的方式,实现的简便的年月选择器,附以完整源码
2019-03-26 01:08:41
6552
原创 Android 主工程找不到Library attrs中的自定义属性
小问题,做个记录。布局文件中引用自定义属性及其命名空间通常如下所示:xmlns:app="http://schemas.android.com/apk/res/android"……<com.hailong.library.gesturelock.PatternView android:id="@+id/patternView" ...
2019-03-20 00:40:29
996
原创 Android 过长的字符串,被自动添加换行符\n
小问题,做下记录。对 json 数据进行了 Base64 加密,然后将加密后的字符串提交到接口,服务端解析失败(服务端 .NET)。对比后发现,字符串的某些位置被自动添加了换行符\n,应该是 Android Studio 对过长字符串进行了处理。所以提交前需要手动去除换行符 \n 。正常加密后的字符串:eyJ2ZXIiOiIxLjAuNiIsImRhdGEiOnsicGFzc...
2019-03-20 00:38:16
1790
原创 Android 实现截屏和截长图功能的几种方法
一般情况下各种型号的手机都会有自带的截屏功能,也会有诸如“开关机键+音量键”的截屏快捷键,只要手机是亮屏状态,都会将手机屏幕的可视区域(包含状态栏)全部截取下来。如果开发中想要调取系统的截屏功能,理论上讲是可以的,需要在APK中调用“adb shell screencap -pfilepath” 命令,但是需要获取root权限,调用系统的隐藏API。这就很麻烦了,感兴趣的可以自己研究一下...
2019-03-20 00:29:16
12214
6
原创 Android bug:@TargetApi(apiVersion) : Call requires API level 21 (current min is 16)
在做WebView页面截长图功能的过程中,由于APIWebView.enableSlowWholeDocumentDraw()的调用,出现了一个异常:Call requires API level 21 (current min is 16)出现这个异常的原因:项目的minSdkVersion是16,但是上述API调用要求的最低API版本是21。android lint说会“警告此...
2019-03-19 23:54:17
1685
原创 Android 如何选择 compileSdkVersion, minSdkVersion 和 targetSdkVersion
Android系统在持续更新中,当Android系统发布了新版本后,之前的应用在新版本的系统上运行会不会出问题呢?当然不会,向前兼容是软件行业需要持续关注的事情,Android自然也很重视。Android就是通过compileSdkVersion、minSdkVersion、targetSdkVersion保证着应用和不同版本Andorid系统的和谐相处的,三者的作用分别是控制可以使用哪些AP...
2019-03-19 23:50:25
1968
原创 Android Support Library v4、v7、v13
一、前言关于Android Support Library,官网是这样解释的:“Android 支持库提供了诸多未内置于框架的功能。这些库提供向后兼容版本的新功能、框架中未包含的实用 UI 元素,以及应用可以利用的一系列实用程序。”官网参考链接:https://developer.android.com/topic/libraries/support-library/index.htm...
2019-03-19 23:46:20
1857
原创 Android 6.0的权限管理
背景Android系统的权限获取首先要在项目的Manifest.xml文件中声明。在Android 6.0之前,当用户安装APP时,会向用户展示应用要获取的所有权限,用户继续安装则代表同意授权,用户若要拒绝授权或者仅仅想要拒绝授权某一个权限,用户就只有取消安装一种方法可用。这对于用户是很不友好的。一般用户都只能选择继续安装,这之后应用就能够获取到它所声明的所有权限,包括一些能够访问用户...
2019-03-19 23:40:10
240
原创 Android 在APP存活或者被杀死情况下,点击通知栏打开指定Activity
在收到推送通知后,点击通知栏要打开APP的指定页面,是Andorid中的一个常见功能。1、若APP存活,很简单,直接在通知栏的点击监听中启动对应Activity即可: @Override public void dealWithCustomAction(Context context, UMessage uMessage) { context.startAc...
2019-03-19 23:36:10
2653
原创 Android APP启动时的黑白屏问题
Android APP启动时黑屏或者白屏的问题很常见,解决起来也不复杂。下面总结一下出现的原因,以及常见的解决此问题的两种方案。问题出现先看一下黑屏或者白屏的情形吧,在SplashActivity加载布局文件之前设置主线程睡眠几秒钟,使黑/白屏必然出现@Overrideprotected void onCreate(Bundle savedInstanceState) { ...
2019-03-19 23:31:10
754
原创 Android Textview实现文字颜色渐变效果
文字颜色渐变效果图下图中那串数字就处于重写的TextView中:实现方案方案一:继承TextView,重写onDraw()方法import android.widget.TextView;import android.content.Context;import android.graphics.Canvas;import android.graphics.Linear...
2019-03-19 23:08:35
7266
2
原创 Android 魅族MX5——视频播放,横竖屏切换黑屏,有声音没图像
注:视频还是阿里云的视频点播服务,使用的阿里的SDK。项目中所有Activity继承了基类BaseActivity,基类BaseActivity从FragmentActivity继承而来,在其他测试机上,视频横竖屏切换播放均没有问题。但在魅族MX5上,从竖屏切横屏后黑屏,只有声音没有图像,找来找去也没有找到解决方案。后来发现阿里的demo中的视频播放Activity继承于AppComp...
2019-03-19 22:53:55
1517
原创 Android bug:accs bindapp error,友盟推送与阿里云视频点播的so配置不兼容问题
1 . 集成友盟推送3.X版本,如果遇到常规的“accs bindapp error”报错,很好处理,按照友盟官方的建议即可:在build.gradle配置文件中配置如下:ndk { //设置支持的SO库架构 abiFilters 'x86', 'armeabi' }2 . 我遇到的问题的特殊之处在于:同时集成了友盟推送和阿里云视频点播,这两个第...
2019-03-19 22:52:21
907
原创 Android 64K方法数问题:Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
错误原因编译时会出现此错误信息,并且通常是在同一时间大量的出现。实际上就是所谓的“Android 64K方法数”的问题,当项目源码加上引入的包中的总方法数超过65536时,可能会报此错误。Android5.0之前的Dalvik虚拟机,默认情况下只会为每个APP生成一个classs.dex,而单个.dex文件允许的最大方法数是65536,当总方法数超过此限制时,编译器就会报上述的异常。...
2019-03-19 22:37:20
169
转载 优快云-markdown编辑器教程
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...
2019-03-19 22:11:22
181
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人