AnjoyZhang
码龄6年
  • 277,060
    被访问
  • 69
    原创
  • 1,319,435
    排名
  • 115
    粉丝
关注
提问 私信
  • 加入CSDN时间: 2015-12-10
博客简介:

Simon_Crystin的博客

查看详细资料
个人成就
  • 获得124次点赞
  • 内容获得142次评论
  • 获得180次收藏
创作历程
  • 1篇
    2020年
  • 17篇
    2019年
  • 17篇
    2018年
  • 30篇
    2017年
  • 19篇
    2016年
  • 3篇
    2015年
成就勋章
TA的专栏
  • Android应用层
    55篇
  • Java
    15篇
  • 开发工具
    1篇
  • Android 组件
    4篇
  • 脚本
    1篇
  • Linux
    2篇
  • C ++
  • Android源码
    3篇
  • 设计模式
    2篇
  • Android开源框架
    1篇
  • Android系统框架
    1篇
  • WebView
    4篇
  • I/O相关
    2篇
  • Android性能优化
    4篇
  • 计算机基础
    1篇
  • Kotlin
    3篇
  • 错误笔记
  • Android动态加载
    1篇
兴趣领域 设置
  • 数据结构与算法
    数据结构
  • 移动开发
    kotlinflutterandroid studio
  • Android
    gradleandroid jetpack
  • 软件工程
    性能优化
  • 职场和发展
    面试
  • 最近
  • 文章
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

Android 小米深色模式对View进行适配

问题概述:问题来源于测试提了一个bug,在小米手机上图片直接消失了。原因:造成这个问题的原因在于,小米手机深色模式下会为所有的应用默认开启深色模式,可在设置中主动关闭。哪怕应用没有主动适配,小米也会为应用开启深色模式。其他厂商暂未发现此问题。问题再探究竟:小米手机为开启深色模式的应用开启颜色反转,黑色变成白色,白色变成黑色。正常情况下,应用是可以正常反转使用的。但是如果应用如果使用了shape下的solid属性。就会造成solid反转失效。这也是造成我们应用图片不显示的根本原因。由于solid反转
原创
发布博客 2020.11.30 ·
1796 阅读 ·
3 点赞 ·
0 评论

数组与容器对比

容器能否完全替代数组?针对数组类型,很多语言都提供了容器类,比如 Java 中的 ArrayList、C++ STL 中的 vector。在项目开发中,什么时候适合用数组,什么时候适合用容器呢?这里我拿 Java 语言来举例。如果你是 Java 工程师,几乎天天都在用 ArrayList,对它应该非常熟悉。那它与数组相比,到底有哪些优势呢?我个人觉得,ArrayList 最大的优势就是可以将...
原创
发布博客 2019.12.23 ·
517 阅读 ·
0 点赞 ·
0 评论

Linux环境变量总结

Linux是一个多用户多任务的操作系统,可以在Linux中为不同的用户设置不同的运行环境,具体做法是设置不同用户的环境变量。Linux环境变量分类一、按照生命周期来分,Linux环境变量可以分为两类:1、永久的:需要用户修改相关的配置文件,变量永久生效。2、临时的:用户利用export命令,在当前终端下声明环境变量,关闭Shell终端失效。二、按照作用域来分,Linux环境变量可以分为:...
原创
发布博客 2019.08.20 ·
243 阅读 ·
1 点赞 ·
0 评论

9102年了,还不知道Android为什么卡?

导读最近华为方舟编译器要开源了,笔者去看了下发布会PPT,发现作为一名Android开发者,PPT中所介绍的知识点我居然不能完全看懂???于是乎恶补了下PPT中的内容,整理成本文。本文将用通俗的语言从底层介绍Android卡顿的历史原因和谷歌与之斗争的过程阅读完这篇文章后你将理解计算机是如何解读我们所写的程序并执行相应功能的了解Android虚拟机的进化史从底层了解造成Android...
转载
发布博客 2019.08.19 ·
575 阅读 ·
0 点赞 ·
0 评论

Android动态加载技术 简单易懂的介绍方式

我们很早开始就在Android项目中采用了动态加载技术,主要目的是为了达到让用户不用重新安装APK就能升级应用的功能(特别是 SDK项目),这样一来不但可以大大提高应用新版本的覆盖率,也减少了服务器对旧版本接口兼容的压力,同时如果也可以快速修复一些线上的BUG。这种技术并不是常规的Android开发方式,早期并没有完善的解决方案。从“不明觉厉”到稳定投入生产,一直以来我总想对此编写一些文档,这也...
转载
发布博客 2019.08.14 ·
925 阅读 ·
0 点赞 ·
0 评论

使用Android sdk/build-tools/dx工具转jar为dex时出现:-Djava.ext.dirs is not supported

使用dx.bat工具出现以下错误:-Djava.ext.dirs=C:\Users\EDZ\AppData\Local\Android\Sdk\build-tools\27.0.3\lib is not supported. Use -classpath instead.Error: Could not create the Java Virtual Machine.Error: A fa...
原创
发布博客 2019.08.14 ·
1605 阅读 ·
3 点赞 ·
5 评论

Kotlin实战--给别人的类添加方法:扩展函数和属性

1.概述扩展函数能够让我们与项目无缝接入,我们能够在无侵入的情况下为类添加更多的行为和属性,Kotlin库中很多地方就用到了扩展函数,如Anko库里面的布局系统,集合的使用等。正是由于扩展函数的使用,才可以让我们与JAVA无缝衔接。并且扩展函数的使用非常的简单,下面我将从下面几个方面介绍扩展函数。为什么要使用Kotlin中的扩展函数?如何使用扩展函数和扩展属性?扩展函数和属性原理扩展函...
原创
发布博客 2019.05.17 ·
1525 阅读 ·
3 点赞 ·
0 评论

Kotlin实战--消除静态工具类:顶层函数和属性

1.引入我们都知道, Java 作为 门面向对象的语言,需要所有的代码都写作类的函数大多数情况下,这种方式还能行得通。但事实上,几乎所有的大型项目,最终都有很多的代码并不能归属到任何 个类中。有时 个操作对应两个不同的类的对象,而且重要性相差无几。有时存在 个基本的对象,但你不想通过实例函数来添加操作,让它的 API 继续膨胀。结果就是,最终这些类将不包含任何的状态或者实例函数,而是仅仅作为一堆...
原创
发布博客 2019.05.16 ·
397 阅读 ·
1 点赞 ·
0 评论

用Kotlin的Anko库优雅开发Android应用--Anko库详细教程

前言最近Kotlin的呼声又是日益高涨,前几天9012年Google IO正式将Kotlin从first _class提升为kotlin_first。我也是接触了一段时间的Kotlin,给我的感觉就是简约,快速。无需繁琐的findId,高阶函数的应用,再加上Kotlin的null 安全,更是将代码的崩溃率降到更低。今天我们就来介绍一下今天的主角—Anko1.AnkoAnko是JetBrai...
原创
发布博客 2019.05.14 ·
2168 阅读 ·
2 点赞 ·
0 评论

CPU核心数目 与 多线程

一直以来有这样的疑惑,在现如今多核多线程的电脑处理器之下,一个进程中的几个线程是 怎么运行的呢?(是经系统和JVM分配少量的资源 最后轮流切换 时间调度?还是这几个线程分配到不同的核上同时运行?)今天就这一问题查了一些资料,现整理如下:单个CPU一个时刻只能运行一个线程?单核CPU电脑同一时间内只能执行一个线程,首先了解一下,CPU执行的过程 ,它是把时间分成若干个小时间段,这些时间段很小的...
转载
发布博客 2019.05.13 ·
2015 阅读 ·
2 点赞 ·
0 评论

Android 性能优化--内存优化之Bitmap优化

Android开发中,Bitmap是经常会遇到的对象,特别是在列表图片展示、大图显示等界面。而Bitmap实实在在是内存使用的“大客户”。如何更好的使用Bitmap,减少其对App内存的使用,是Android优化方面不可回避的问题。因此,本文从常规的Bitmap使用,到Bitmap内存计算进行了介绍,最后分析了Bitmap的源码和其内存模型在不同版本上的变化。Bitmap的使用一般来说,一个对...
转载
发布博客 2019.04.25 ·
599 阅读 ·
3 点赞 ·
0 评论

Android性能优化 View--布局优化

目录1.影响的性能布局性能的好坏 主要影响 :Android应用中的页面显示速度2.如何影响性能布局影响Android性能的实质:页面的测量 & 绘制时间1个页面通过递归 完成测量 & 绘制过程 = measure、layout 过程3.优化思路优化方向:布局性能、布局层级、布局复用性 和 测量 & 绘制时间具体如下针对 页面布局的性能、层级、...
转载
发布博客 2019.04.24 ·
173 阅读 ·
0 点赞 ·
0 评论

Android性能优化 View--绘制优化

目录1.影响的性能绘制性能的好坏 主要影响 :Android应用中的页面显示速度2.如何影响性能绘制影响Android性能的实质:页面的绘制时间1个页面通过递归 完成测量 & 绘制过程3.优化思路主要优化方向是:降低View.onDraw()的复杂度避免过度绘制(Overdraw)3.具体优化方案下面,我将详细分析每种优化方案4.1. 降低View.on...
转载
发布博客 2019.04.24 ·
1069 阅读 ·
0 点赞 ·
0 评论

磁盘I/O的三种方式对比:标准I/O、直接 I/O、mmap

文章目录@[TOC]1.引入1.1 标准I/O1.2直接I/O1.3 mmap1.引入让我们先看一下Linux系统下IO结构模型从图中可以看到标准 I/O、mmap、直接 I/O 这三种 I/O 方式在流程上的差异1.1 标准I/O大多数文件系统的默认I/O操作都是标准I/O。在Linux的缓存I/O机制中,数据先从磁盘复制到内核空间的缓冲区,然后从内核空间缓冲区复制到应用程序的地...
原创
发布博客 2019.04.17 ·
1439 阅读 ·
1 点赞 ·
0 评论

深入分析 Java I/O 的工作机制

Java 的 I/O 类库的基本架构I/O 问题是任何编程语言都无法回避的问题,可以说 I/O 问题是整个人机交互的核心问题,因为 I/O 是机器获取和交换信息的主要渠道。在当今这个数据大爆炸时代,I/O 问题尤其突出,很容易成为一个性能瓶颈。正因如此,所以 Java 在 I/O 上也一直在做持续的优化,如从 1.4 开始引入了 NIO,提升了 I/O 的性能。关于 NIO 我们将在后面详细介绍...
原创
发布博客 2019.04.17 ·
130 阅读 ·
0 点赞 ·
0 评论

磁盘I/O那些事

概述计算机硬件性能在过去十年间的发展普遍遵循摩尔定律,通用计算机的CPU主频早已超过3GHz,内存也进入了普及DDR4的时代。然而传统硬盘虽然在存储容量上增长迅速,但是在读写性能上并无明显提升,同时SSD硬盘价格高昂,不能在短时间内完全替代传统硬盘。传统磁盘的I/O读写速度成为了计算机系统性能提高的瓶颈,制约了计算机整体性能的发展。硬盘性能的制约因素是什么?如何根据磁盘I/O特性来进行系统设计...
转载
发布博客 2019.04.16 ·
354 阅读 ·
0 点赞 ·
0 评论

Android Retrofit统一处理 token失效跳转到登录页面

文章目录1.问题引入2.解决方案1.问题引入在客户端开发中,我们可能会遇到token失效问题,这个时候我们可以刷新token或者跳转到登录页面,这里我们就给出如何统一处理token失效问题,基于Retrofit。2.解决方案在BaseFilterObserver(implements Observer)中重写onNext方法 public void onNext(@NonNull Res...
原创
发布博客 2019.04.16 ·
5955 阅读 ·
4 点赞 ·
1 评论

Android P(9.0) http网络请求的问题(Cleartext HTTP traffic to **** not permitted)

1.前言Google表示,为保证用户数据和设备的安全,针对下一代 Android 系统(Android P)的应用程序,将要求默认使用加密连接,这意味着 Android P 将禁止 App 使用所有未加密的连接,因此运行 Android P系统的安卓设备无论是接收或者发送流量,未来都不能明码传输,需要使用下一代(Transport LayerSecurity)传输层安全协议,而 Andr...
原创
发布博客 2019.03.15 ·
1223 阅读 ·
0 点赞 ·
0 评论

Cookie、Session、Token那点事儿

1.什么是Cookie?2.Session :3.Token :4.Cookie和Session的区别:6.Token 和 Session 的区别:1.什么是Cookie?Cookie 技术产生源于 HTTP 协议在互联网上的急速发展。随着互联网时代的策马奔腾,带宽等限制不存在了,人们需要更复杂的互联网交互活动,就必须同服务器保持活动状态(简称:保活)。于是,在浏览...
转载
发布博客 2018.09.06 ·
257 阅读 ·
1 点赞 ·
0 评论

Android WebView开发(三)--WebViewClient 与WebChromeClient的使用

1.前言2.WebViewClient类2.1 WebViewClient作用:2.2 WebViewClient 常用方法 :2.2.1 shouldOverrideUrlLoading()方法3.WebChromeClient类3.1 WebChromeClient 作用:3.2 WebChromeClient 常用方法:1.前言前两篇我们讲解了 And...
原创
发布博客 2018.08.31 ·
2366 阅读 ·
0 点赞 ·
0 评论
加载更多