自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 资源 (9)
  • 问答 (15)
  • 收藏
  • 关注

原创 Android—Bitmap解析与应用

项目地址https://github.com/ListerChen/BitmapProject一、Bitmap基本介绍Bitmap也称为位图,是图片在内存中的表现形式,任何图片(JPEG, PNG, WEBP…)加载到内存后都是一个Bitmap对象。Bitmap实际是像素点的集合,假设它的宽高为width和height,那么该Bitmap就包含width*height个像素,它在内存中占用的内存就是(width*height*单个像素内存)。为了减小图片在磁盘上所占的空间,将Bitmap保存到磁盘上

2022-03-16 01:21:58 780

原创 Java—并发编程指南

并发编程是提高程序运行效率与响应速度的重要手段,在多CPU条件下,并发编程可以使硬件得到更大程度的运用。由于在并发环境下CPU随时会对多线程的运行进行调度,因此线程中各指令执行的顺序是不确定的,出现问题时也难以复现和定位。如果开发人员了解并发的原理,就能在有并发问题隐患的地方妥善处理来规避风险。并发的知识体系很庞大,涉及到内存模型、并发容器、线程池等一系列知识点,优秀并发程序对性能与活跃性也有较高的要求,因此想要吃透并发并不是一件容易的事。想要写好并发程序,不仅需要对并发的原理有所了解,更需要工程上的实践

2021-02-28 23:18:54 250

原创 Android—提醒式通知的显示与限制

提醒式通知也称为横幅通知或悬浮通知,适用于用户应该立即知晓的通知,它会短暂地悬浮在Window上,等到显示时间耗尽或者用户上划后消失,随后仍显示在通知抽屉中。提醒式通知的应用非常广泛,QQ/微信的消息通知,支付宝的交易记录都会以提醒式通知的形式出现。不过Android的官方文档上并没有明确表示该如何触发提醒式通知,而是给出了以下模糊的描述。以下情况可能会触发提醒式通知:1 用户的 Activity 处于全屏模式(应用使用 fullScreenIntent)。2 通知的优先级很高,且在搭载

2021-02-24 19:30:13 1181

原创 Android—V2签名下多渠道快速打包方案

笔者是MIUI系统应用组的开发,之前发布APP时只有应用商店这一个渠道,因此只需给应用商店提供一个APK即可。不过最近应用开发了一个外发版本,该版本有广告、push等多个下载渠道,为了统计各渠道的日活、转化率等信息,需要进行多渠道打包,目前腾讯的VasDolly和美团的Walle这两个框架都实现了V2签名下的多渠道快速打包,但是项目并不希望引入第三方库,因此选择独立开发。一、多渠道打包现状1. Android自带多渠道打包在Manifest的application标签下添加meta-data标签,表示

2021-02-14 15:57:30 1196

原创 Android—消息机制与WeakHandler源码分析

一、消息机制简述消息机制是Android的核心,宏观来说它是一种顺序的、非阻塞的任务机制,APP的主线程就是以消息来驱动的。消息机制主要由Handler、Looper与MessageQueue实现,每个线程只有一个Looper和MessageQueue,因为Looper是ThreadLocal变量,而MessageQueue又是Looper的成员变量。消息机制的流程概括起来很简单:用户通过Handler将消息添加到MessageQueue中,而Looper又会不断从MessageQueue中取出消息分发

2020-11-02 00:38:54 425

原创 Android—DiskLruCache基本用法与源码解析

DiskLruCache与LruCache都实现了Lru缓存功能,两者都用于图片的三重缓存中。LruCache将图片保存在内存,存取速度较快,退出APP后缓存会失效;而DiskLruCache将图片保存在磁盘中,下次进入应用后缓存依旧存在,它的存取速度相比LruCache会慢上一些。DiskLruCache最大的特点就是持久化存储,所有的缓存以文件的形式存在。在用户进入APP时,它根据日志文件将DiskLruCache恢复到用户上次退出时的情况,日志文件journal保存每个文件的下载、访问和移除的信息

2020-10-23 23:11:35 808 1

原创 Android—WebView加载速度优化工程实践

一、混合开发的优势与缺陷在混合开发大行其道的今天,很多页面和功能都转由前端实现,客户端只要在APP中嵌入一个WebView即可,同时前端开发的页面对于Android和iOS端的效果是统一的,省去了适配的困扰。适合前端开发的界面主要有以下两种:1、新闻咨询类页面,这类页面布局比较复杂,通过前端实现相对原生更为简单。2、运营活动类界面,这类页面更新较为频繁,前端迭代后可以直接上线,跳过了客户端的发版流程。前端开发的优势显而易见:开发敏捷、发版灵活。但是它的缺点同样明显,我认为主要有以下3点。第一个问

2020-08-30 23:18:02 1423 1

原创 Android—混淆与打包

我们都希望自己的代码足够"安全",即使别人反编译了我们的应用,他们也很难从反编译的代码中找出漏洞。这时候我们就依赖编译器的混淆功能,混淆会将大部分(下面会解释为什么是大部分)类和成员的名称重命名为没有意义的短名,例如aa、ab这种,此时的代码基本没有可读性,也就不容易找到漏洞。想要从代码的角度分析混淆做了什么,我们就得查看混淆后的代码,本文通过反编译来分析混淆前后的代码有何不同。一、混淆与反编译1.1 混淆、缩减与优化应用混淆并不是单独使用的,当你启用混淆时,编译器还会同时缩减和优化你的应用,以尽可能

2020-05-17 20:53:00 670

原创 Android—在WebView中下载Blob协议文件

之前有个需求是要下载Blob协议的gif,让我苦恼了好久。平时下载http协议的文件时直接获取输入流即可,但是Java无法获得Blob协议的文件流,无法直接处理。不过JavaScript处理Blob协议非常方便,可以考虑通过前端将该文件转化为Base64的字符串。那么下载Blob协议文件时,可以先将链接传给前端,前端通过JS处理后得到Base64的文件流,再将文件流通过Android的JavaScript方法传给客户端。按这个逻辑,JS处理文件流这块需要前端开发,不过有意思的是,这部分功能我们可以直接在

2020-05-13 23:44:31 3387 1

原创 Android—RecyclerView进阶(5)—自定义LayoutManager

我的CSDN: ListerCi我的简书: 东方未曦一、简介&示例虽然官方提供的LinearLayoutManager和GridLayoutManager等已经可以满足绝大部分需求了,但是当我们对Item的布局有特殊的需求时就需要我们自定义LayoutManager。自定义LayoutManager作为RecyclerView的一大难点,对自定义View和RecyclerView复用...

2020-04-13 01:34:32 773

原创 Android—RecyclerView进阶(4)—复用机制及性能优化

我的CSDN: ListerCi我的简书: 东方未曦一、RecyclerView基本结构RecyclerView的运行主要依赖于Adapter、LayoutManager和Recycler这三个类,其中Adapter负责与数据集交互,LayoutManager负责ItemView的布局,Recycler负责管理ViewHolder,其结构如下图。得益于RecyclerView设计时的解耦...

2020-04-13 01:30:39 1427 3

原创 Android - RecyclerView进阶(3)—ItemAnimator分析及自定义

我的CSDN: ListerCi我的简书: 东方未曦俗话说,好看的皮囊千篇一律,有趣的灵魂万里挑一。但是对于我们这些俗人来说,肯定是选择好看的皮囊,咱们的用户也是如此。你看看应用市场上那些花枝招展的APP,哪个不是用上了五花八门的动画效果,就算你的内在安全省电性能好,没点儿花招可留不住花心的用户。所以我们今天就来看看怎么实现让用户眼前一亮的动画,当然原理也很重要,因此源码分析必不可少,本文的源...

2020-03-26 00:30:01 725

原创 Android - RecyclerView进阶(2)—ItemDecoration与城市列表

我的CSDN: ListerCi我的简书: 东方未曦写在前面本系列博客的demo都上传到了github:RecyclerViewDemo如果有帮助到你的话不妨给我点个star~在介绍ItemDecoration之前我们不妨先看下它能实现什么功能。这是一个国内大部分城市的列表,通过城市拼音对其排序,通过拼音首字母对其分组。在滑动到某一组的城市时,它的Header会在顶部保持不动,下一组滑...

2020-02-27 00:52:02 423

原创 Android - RecyclerView进阶(1)—LayoutInflater

我的CSDN: ListerCi我的简书: 东方未曦RecyclerView是项目中使用最为频繁的控件之一,相关的知识点非常多,如果对RecyclerView的了解不够深入,那么在进行性能优化、自定义动画等工作时就会觉得力不从心。博主本人也有过多次这样的经历,因此下定决心要对RecyclerView相关的知识进行整理和学习,所以有了这一系列的博客。本系列将会对RecyclerView的内容和...

2020-02-22 18:07:22 316

原创 Android - ScrollView源码分析及简单实现

一、ScrollView介绍及源码分析ScrollView是Android日常开发中比较常见的一个ViewGroup,它只能有一个子View。用户在滑动时子View在ScrollView内部滚动,显示不同的区域。在开发中如果需要将多个不同类型的视图垂直排列时,我们一般会使用ScrollView。但是永远不要将RecyclerView和ListView添加到ScrollView中,这会造成很不好...

2020-02-10 21:23:12 385

原创 Android - 有趣的嵌套滑动

一、效果展示github地址:NestedScrollTest二、嵌套滑动API介绍上面所展示的界面是一个线性布局,如图所示:外部父LinearLayout包裹ImageView、TextView和RecyclerView,如果我们希望滑动RecyclerView的时候能先将ImageView滑动上去,我们该怎么做呢?这里就需要用到嵌套滑动,假设当前用户手指上滑RecyclerVie...

2020-01-06 00:18:37 510

原创 Android - 常见的内存泄漏场景及解决方案

我的简书:东方未曦 一、引言一般情况下Android的内存泄漏是因为,存在引用指向一个本该被回收的对象,例如已经执行onDestroy()的Activity。在这种情况下,由于Activity内某些对象的生命周期比Activity要长,在Activity理论上被销毁时,该对象依旧存在并持有Activity的引用,因此内存回收机制(GC)无法释放Activity,最终导致内存泄漏。为了发现和修...

2019-08-25 21:24:35 454

原创 Android - PorterDuffXfermode实现进度条

周一上午,老王叼着包子,一进公司门就看到了产品在张望。老王暗道一声不好,正想溜之大吉,却已经被产品半路截下:“我们的进度条需要改版,我给你找了个样式,你就照这个做吧”。老王寻思不就一进度条吗,能有什么花头。伸手接过产品递来的手机一看,眼前的进度条长这个样子:老王眉头一皱,发现事情并不简单,但是作为一个沉着冷静的老开发,他从来不会说“应该”、“或许”这种有损他形象的词语。他转头对产品微微一笑,说...

2019-07-29 01:10:21 473

原创 Android - 登录界面软键盘适配

一、软键盘属性1. 属性介绍软键盘的交互属性通过android:windowSoftInputMode设置,该属性的设置主要包含两个方面。第1:在当前Activity获取焦点时软键盘是隐藏还是可见。属性如下:属性说明stateAlwaysHidden一直隐藏软键盘stateAlwaysVisible打开Activity即显示软键盘stateHidden...

2019-06-24 22:27:43 843

原创 Android - ValueAnimator+PathMeasure实现支付宝支付动画

一、效果展示动画分为三种状态:Loading、Success、Fail,可以点击按钮切换状态。加载后成功的效果如下所示。加载后失败的效果如下所示。二、前置知识1. ValueAnimatorValueAnimator是属性动画的一种,它不直接改变View的属性,而是不断生成一个代表动画进度的值,用户通过该值改变View的某些属性达到动画的效果。ValueAnimator基本的用法如...

2019-06-13 22:02:28 449

原创 Java - 自定义注解的实现

一、关于注解注解是Java中的一个常见特性,如果当前类继承自某个父类或者实现了某个接口,那么继承(实现)的方法上会包含一个@override注解,表示当前这个方法重写了父类或者接口的方法。@override注解的功能比较简单,只是让开发人员意识到当前方法是重写的,该注解在编译时就会被丢弃。而平时我们所使用的一些框架内的注解都是需要在运行时获得其注解的类或对象的,因此级别与override注解不同...

2019-05-09 23:39:50 487

原创 基于Android和Java后台的朋友圈的设计和实现

我的简书:东方未曦 ##前言这是秋招前做的一个应用,当时是想通过一个完整的项目来向面试官展现项目设计能力和实战能力,不过直到秋招最后很多面试官都没问这个,想来是他们觉得一个应届生做的东西也不会包含什么高深的技术吧。╮(╯▽╰)╭在本次应用的开发过程中也遇到了很多问题,基本都是通过查阅博客解决的,在此感谢各位分享技术的博客大佬。因此现在我也将应用的实现过程记录下来,希望可以帮助到有需要的人。如...

2018-12-19 21:02:46 2194 3

原创 二叉树与递归的前世今生

我的简书:东方未曦 一、二叉树与递归二叉树与递归有着千丝万缕的联系,二叉树在定义时就使用了递归的概念:一棵二叉树可能是空树,如果不是空树,那么它的左右子树都是二叉树。我们一般这样定义二叉树的节点TreeNode,它包含三个成员:该节点的值,该节点的左子树和该节点的右子树。TreeNode的构造函数在新建节点时会将它的左右子树都赋值为空。struct TreeNode { i...

2018-08-24 17:48:29 851 1

原创 暴力的艺术:回溯算法

我的简书:东方未曦 一、回溯算法与DFS回溯算法是暴力求解的一种,它能系统地搜索一个问题的所有解或者任意解。它通过深度优先搜索递归地遍历所有可能的解。遍历到解空间的某个分支时,如果确定当前分支不满足条件,那么就退回到上一步尝试别的分支。这种回退到上一步的方式就是“回溯”,判断分支是否有解就是“剪枝”。 如果你是一名新手,看完回溯的定义,你是心怀期待呢还是心乱如麻呢?其实回溯法是算法学...

2018-08-13 23:31:57 605

转载 Android - 引导页面的实现

当你第一次打开一款应用的时候常常会看到精美的引导页设计,它们在你未使用产品之前提前告知你产品的主要功能与特点,第一次印象的好坏会极大地影响到后续的产品使用体验。因此各个公司都在努力将这几个页面设计好,从一开始就引人入胜。那接下来我就来一步步实现引导页的功能。

2017-07-06 11:16:59 611

原创 Android - 更换头像及图片裁剪(适配Android7.0)

相信大家都用过 Android 应用中更换头像的功能,在这个功能中,用户可以拍照或者选择相册图片,然后裁剪出头像所需要的图案。 那么你们有没有考虑过这个功能怎么实现的呢?今天就让我们一步步搞定这个功能。

2017-06-26 17:35:09 4196 12

原创 Android - 基于EasyAR SDK的AR红包的实现

还记得支付宝在新年里推出的 AR 红包吗?你只要用手机扫一扫“福”字就可以得到一个红包,是不是很神奇很好玩?那么你是否思考过这类程序如何实现呢?

2017-06-09 08:38:17 2780 12

转载 Android - Android平台的崩溃捕获机制及实现

Android系统碎片化造成应用程序崩溃严重,在模拟器上运行良好的程序安装到某款手机上说不定就会出现崩溃的现象。而且,往往都是程序发布之后在用户端出现了崩溃现象。所以,如何及时捕获并收集Android平台的崩溃就显得愈发重要。

2017-06-07 15:55:56 604

原创 Android - 视频的录制保存以及视频列表查看

本案例主要有两个功能,首先要录制视频然后保存到一个特定的文件夹,这个文件夹就用来存放本应用中录制的视频。然后可以将这个文件夹中的所有文件以列表的形式展示给用户看,并附带缩略图。

2017-06-07 13:15:20 2431

原创 Android - 顶部滑动导航

在 Android 开发中,经常需要使用顶部或者底部的导航来切换当前显示的 Fragment。 这类应用分为两部分:下方使用 ViewPager 实现多页滑动显示。滑动时,ViewPager 显示不同的 Fragment,我们可以为 ViewPager 设置适配器来实现这样的效果。 上方的四个 TextView 的显示需要我们自己实现。

2017-05-20 16:06:38 1559

dex-tools-2.1-SNAPSHOT.zip

dex-tools-2.1-SNAPSHOT.zip压缩包,用于反编译,将dex文件转为jar文件,通过dex2jar源码编译。

2020-05-10

jenkins-2.222.1.zip

windows环境jenkins2.22,用于自动化打包。官网下载太慢了,因此上传到CSDN,有需要的朋友自取。

2020-04-20

Android系统下选择图片及裁剪

Android系统下选择图片及裁剪,可用于修改头像等。在拍照时适配Android7.0,同时将Gradle修正至最新版。

2019-03-28

Android系统录制视频(适配7.0)

调用Android系统相机录制视频并保存到本地指定文件夹,并可查看已录制的视频及其缩略图。同时适配Android7.0的Intent管理,解决了闪退问题。

2019-03-28

Android修改及裁剪头像(适配Android7.0)

Android修改及裁剪头像(适配Android7.0)

2017-07-31

Android 修改及裁剪头像 Demo

Android 修改及裁剪头像 Demo

2017-06-26

实现AR红包的具体代码

实现AR红包的具体代码

2017-06-09

EasyAR实现AR红包的关键代码

EasyAR实现AR红包的关键代码

2017-06-08

Android视频的录制保存及查看

Android视频的录制保存及查看

2017-06-07

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除