自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 Android酷炫计时器

背景最近刷到一张计时器效果图(如图),而个人项目中正需要一个沉浸式的计时器页面,就把这种效果实现。下面就分享一下实现过程。分析效果图可以分为三层:第一层:最底层的紫色模糊光晕效果第二层:是由蓝色、浅红色、白色、淡蓝色、紫色、深紫色等颜色的圆或椭圆组成第三层:倒计时文字整体的效果会通过自定义view来实现,所以对自定义view不是很熟悉的小伙伴,可以看一下大神写的这篇文章:没见过这么详细的,自定义控件图形探索!第一层紫色模糊光晕效果。Paint.setMaskFilter(MaskF

2021-03-02 23:08:53 446

原创 Android代码规范

Android代码规范前言代码规范是团队高效协作开发的前提,所以说是非常重要的。最近就有想法根据各种规范文档和本人开发经验,做一个我们团队的Android代码规范。说Android开发规范就不得不说Java代码规范,除非使用kotlin进行Android开发。所以本文一共分为两个部分Java代码规范、Android代码规范JAVA代码规范说起java代码规范就不得不提阿里java开发手册,有阿里背书自然很权威,所以日常开发中尽量按此规范进行开发。Android studio可直接集成插件:Aliba

2021-02-25 21:57:39 533

原创 ARouter使用及原理分析

简介ARouter是阿里开源的路由组件,是 Android 平台中对页面、服务提供路由功能的中间件,常被用来进行组件化通讯。功能介绍支持直接解析标准URL进行跳转,并自动注入参数到目标页面中 支持多模块工程使用 支持添加多个拦截器,自定义拦截顺序 支持依赖注入,可单独作为依赖注入框架使用 支持InstantRun 支持MultiDex(Google方案) 映射关系按组分类、...

2020-09-07 17:21:30 899

原创 Android输入法与页面布局无缝切换

背景最近在做一个笔记相关的项目,涉及到输入法与页面布局间的切换,以前最多就是控制输入法显示隐藏,所以在做的过程中遇到一些闪屏的问题,在此记录一下。如图,在输入法上方悬浮一个tab栏,在点击切换字体时会出现闪屏。看起来很影响视觉,说好的无缝切换呢?在说解决方法之前先说一下键盘和布局之间的一些交互。SoftInputMode软键盘弹出可能会遮挡住activity中的EditView或者一部分界面,我们经常会在AndroidManifest.xml中指定android:windowSoftI.

2020-05-20 22:54:54 1312 2

原创 CountDownLatch使用及源码分析

定义CountDownLatch可以理解为一个同步的倒数计数器,用于同步一个或多个任务,强制等待其他任务完成后再执行。比如你请人去饭店吃饭,每个人到场时间不一样,而服务员要等所有人到场后才上菜一样。在比如我们用多线程分段去下载一个文件,需要等待每个线程的下载任务完成,文件才算下载完成,再进行其他操作使用看一个简单demopublic class MyClass { private static CountDownLatch downLatch=new CountDownLa

2020-05-16 10:23:14 201

原创 Webview开发及性能优化

Webview现状 版本 内核 描述 <19(Android 4.4) Android Webkit内核 对HTML5的支持不是很好,js存在安全漏洞 >=19 Chromium内核 ...

2019-07-06 09:41:08 1029 1

原创 Glide4.x加载应用图标

加载应用图标其实非常简单:ApplicationInfo applicationInfo = packageManager.getApplicationInfo(pkgName.getPkg(), 0);Drawable drawable = applicationInfo.loadIcon(packageManager)只是加载应用图标也是一个耗时的过程,需要开子线程进行加载,以前要...

2018-11-01 13:08:20 1616 3

原创 Hierarchy View常见问题收集

Hierarchy View 在Android SDK里自带,常用来查看界面的视图结构是否过于复杂,用于了解哪些视图过度绘制,又该如何进行改进。首先还是简单的介绍下使用方法通过打开Android Device Monitor,添加hierarchyviewer视图链接设备,启动你要调试的app,选择你要获取Tree View的Activity,最后点击Load View Hierarc...

2018-09-16 16:44:36 936

原创 Android常见内存泄漏

内存泄漏(Memory Leak)是指程序中已动态分配的堆内存由于某种原因未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃(内存溢出OOM)等严重后果。

2022-10-19 09:21:43 2268 1

原创 Android面试笔记

记录下最近面试准备阶段做的笔记,也对一些知识点进行总结。

2022-05-07 14:05:01 804

原创 android commit规范

Commit规范在团队开发过程中,如果大家Commit Message不统一或者写的不清晰,很难看出一次提交修改了哪些内容。对于codereview来说也很难作为参考。目前,社区有多种 Commit message 的写法规范,这里推荐使用angular规范,格式如下:<type>(<scope>): <subject><空行><body><空行><footer>其中 head((): )是必须的,body和

2022-01-20 11:21:25 3293

原创 Android Git Flow代码管理流程

在团队开发中经常会出现以下问题: 一次提交包含多个功能,在开发新功能时如果有问题或需求变更,需要回退代码,就变得很困难,很难做到不影响其他功能; 线上版本出现问题,需要针对指定发布版本进行修复时,很难找到上次发布代码或只能根据提交记录回退代码后进行问题修复; 在功能开发完后进行提测,一部分人员需要对提测版本进行问题修复,另一部分人需要进行新功能开发; 提测过程中你在修复问题或开发新功能,测试人员需要最新版本apk,你必须停下手里的事或完成后切换分支去打包; ...

2021-08-11 23:24:17 302

原创 android:fitsSystemWindows

背景最近在做沉浸式状态栏(状态栏背景透明)时,使用android:fitsSystemWindows属性来适配内容不超出状态栏,但出现了toast显示异常,内容被截断后超出背景。最后发现是因为在theme中设置android:fitsSystemWindows=“true”导致了。随即在布局文件xml的根节点设置android:fitsSystemWindows=“true”就解决问题。在此记...

2020-01-19 09:36:57 629

原创 UML类图

什么是UMLUML是统一建模语言的简称,它是一种由一整套图表组成的标准化建模语言。UML用于帮助系统开发人员阐明,展示,构建和记录软件系统的产出。UML代表了一系列在大型而复杂系统建模中被证明是成功的做法,是开发面向对象软件和软件开发过程中非常重要的一部分为何用 UML? UML 有什么好?为用户提供现成的、有表现力的可视化建模语言,以便他们开发和交换有意义的模型。 为核心概念提供...

2019-09-06 18:01:21 241

原创 代理模式及应用

代理模式定义:由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介。优点:代理模式在客户端与目标对象之间起到一个中介作用和保护目标对象的作用; 代理对象可以扩展目标对象的功能; 代理模式能将客户端与目标对象分离,在一定程度上降低了系统的耦合度;缺点:在客户端和目标对象之间增加一个代...

2019-07-28 07:35:36 329

转载 ios状态栏适配

作为Android开发ios初学者,哈哈哈,最近遇到ios状态栏的适配问题,部分ios设备坐标系起点在状态栏左下角,部分在状态栏坐上角,作为Android开发人员,一脸懵逼,还有这操作。后网上找到问题答案,记录一下。https://blog.csdn.net/globalYK/article/details/50496916https://blog.csdn.net/viiimaus/ar...

2019-06-10 10:39:15 460

原创 ios Could not create an instance for type XXX dict:

在开发工程中需要在封装的framework中,使用EVReflection将json转换成EVObject。将framework集成到工程中后运行并未报错,只是获取不到json对应的EVObject数据,日志输出“Could not create an instance for type XXX dict:”。解决方法是在AppDelegate的didFinishLaunchingWithOp...

2019-05-27 15:51:46 858

转载 ios swift打包framework

https://www.jianshu.com/p/957d38b65b23

2019-05-22 11:34:54 962

原创 Android开发的iOS之路

Swift的基本知识基础部分的知识本文并没有很详细的讲解,只是在学习过程中觉得应该注意的点,详细的基础教程建议查看SwiftGGSwift常量和变量的定义:使用let定义常量,var定义变量。let pi = 3.14159var enemyKilled = 100和Java一样常量定义时必须赋值,但Swift可以不指定数据类型,编译器会根据常量的值,自动判断常量的类型。上...

2019-05-08 10:27:50 235

原创 Flutter之路-Dart篇

Dart的一些基础知识可以看Dart中文网,网上也有很多入门教程。这个系列只是我在学习过程很有用,但一些基础教程中未提及的。Dart和Java在很多方面很相似,但也有很多不一样的地方,比如:在 Dart 中没有诸如 public、private、protected 这样的关键词。以 _开头,则该标识符 在库内是私有的 Dart2中,可以不使用new关键字创建,也可以使用。 Dart中...

2019-05-06 11:43:46 276

原创 Android性能优化

App性能优化一、启动速度1.启动方式1. 冷启动:当启动应用时,后台没有该应用的进程,这时系统会重新创建一个新的进程分配给该应用,这个启动方式就是冷启动。2. 热启动:当启动应用时,后台已有该应用的进程(例:按back键、home键,应用虽然会退出,但是该应用的进程是依然会保留在后台,可进入任务列表查看),所以在已有进程的情况下,这种启动会从已有的进程中来启动应用,这个方式叫热...

2018-09-16 17:04:23 199

原创 快应用签名文件生成

快应用签名文件需要使用openssl命令等工具生成签名文件private.pem、certificate.pem,但OpenSSL官网没有提供windows版本的安装包,最初我是用自己编译的方式安装OpenSSL,需要安装ActivePerl、visual_studio、nasm,然后编译OpenSSL,可以说是相当麻烦,而且很多坑。教程:https://blog.csdn.net/liang19...

2018-09-16 16:51:20 2238 1

空空如也

空空如也

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

TA关注的人

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