火山石
码龄12年
  • 1,108,929
    被访问
  • 154
    原创
  • 1,277,353
    排名
  • 668
    粉丝
关注
提问 私信

个人简介:架构师,技术Leader

  • 加入CSDN时间: 2010-03-28
博客简介:

zhangcanyan的博客

查看详细资料
  • 3
    领奖
    总分 337 当月 1
个人成就
  • 博客专家认证
  • 获得450次点赞
  • 内容获得164次评论
  • 获得896次收藏
创作历程
  • 1篇
    2022年
  • 1篇
    2021年
  • 7篇
    2019年
  • 45篇
    2018年
  • 79篇
    2017年
  • 113篇
    2016年
  • 4篇
    2015年
成就勋章
TA的专栏
  • Android
    225篇
  • java
    36篇
  • 分布式
    3篇
  • 加密
    1篇
  • Linux
    1篇
  • Flutter
    2篇
  • Dart
    1篇
兴趣领域 设置
  • 设计
    uxui交互illustrator平面photoshopsketch3d
  • 最近
  • 文章
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

【数据结构与算法可视化网站】

网上有很多这类数据结构与算法可视化的网站,能够自己输入数据,然后看对应的数据结构/算法的动图,能够很好地帮助我们理解数据结构与算法。所以,今天我就把自己在学数据结构与算法时,用到可视化网站分享出来。Structure Visualization我之前那篇文章就是在 Data Structure Visualization 网站做的动图,这个网站支持很多种数据结构的动图演示。地址如下:https://www.cs.usfca.edu/~galles/visualization/因为网站是国
原创
发布博客 2022.02.04 ·
77 阅读 ·
0 点赞 ·
0 评论

CDN原理简析

CDN原理简析CDN(Content Delivery Network,内容分发网络)将源站的内容发布到接近用户的网络“边缘”,用户可以就近获取所需数据,不仅降低了网络的拥塞状况、提高请求的响应速度,也能够减少源站的负载压力。很多同学都比较熟悉CDN的作用和功能,但是可能也会像我之前一样,对CDN的原理不是十分了解。所以本文旨在对CDN的工作原理和核心组件进行简要的描述。1. 访问源站的过程为了更加清楚地展示CDN的原理,我们首先回顾一下不使用缓存直接到源站请求数据的过程:..
翻译
发布博客 2021.06.16 ·
71 阅读 ·
0 点赞 ·
0 评论

adb shell下使用命令行删除android系统中指定文件和文件夹

记录一下命令:C:\Users\Administrator\Downloads\cmder λ adb root C:\Users\Administrator\Downloads\cmder ...
原创
发布博客 2019.08.13 ·
14251 阅读 ·
3 点赞 ·
0 评论

Add Flutter to existing apps

Dan Field edited this pageon 20 Jun·70 revisionsIntroMaking it easy to add Flutter to an existing app is work in progress, tracked by theAdd-to-App project.This page documents the current st...
转载
发布博客 2019.07.26 ·
881 阅读 ·
0 点赞 ·
0 评论

Flutter笔记(二)

一、Android 集成 Flutter 实现流程闲鱼、头条 在 Android 集成 Flutter 模块都有自己的实现方案:闲鱼团队方案&头条团队方案我们以官方方案方式为主。一、Android 集成 Flutter 实现流程闲鱼、头条 在 Android 集成 Flutter 模块都有自己的实现方案:闲鱼团队方案&头条团队方案我们以官方方案方式为主。...
转载
发布博客 2019.06.14 ·
491 阅读 ·
1 点赞 ·
0 评论

Flutter开发笔记(一)

最近在做项目,想集成Flutter来开发部分组件。所以,开始了研究Flutter混合开发之路。欢迎加入 Dart 阵营。跳过所有有关安装和运行 Flutter 应用程序的部分,直接进行操作,如果您不确定 Flutter 是什么,并且有许多问题,请阅读关于 Flutter 的演进之路。Dart如果你认为 Kotlin 是 Java 的替代,等到你看到 Dart 后,你会发现它...
原创
发布博客 2019.06.14 ·
537 阅读 ·
1 点赞 ·
0 评论

Android:远程服务Service(含AIDL & IPC讲解)

1. 远程服务与本地服务的区别远程服务与本地服务最大的区别是:远程Service与调用者不在同一个进程里(即远程Service是运行在另外一个进程);而本地服务则是与调用者运行在同一个进程里 二者区别的详细区别如下图:按运行地点分类2. 使用场景多个应用程序共享同一个后台服务(远程服务)即一个远程Service与多个应用程序的组件(四大组件)进行跨进程通信...
转载
发布博客 2019.05.02 ·
623 阅读 ·
0 点赞 ·
0 评论

Binder实用指南(二) - 实战篇

本章的内容主要说明如何在JavaFramework层和Native层自定义Client-Server组件,并且使用Binder进行通信。一、Native Binder源码目录结构:alps/frameworks/native/cmds/NativeBinderDemo/ 1 2 3 4 5 6 ...
转载
发布博客 2019.04.06 ·
408 阅读 ·
0 点赞 ·
0 评论

Binder实用指南(一) - 理解篇

这是关于Android Binder机制的一篇文章,Binder是Android里面非常重要的组成,也是最难理解的一块知识点,学习Binder最好的方法是深入源码阅读,因为Binder相关的知识错综复杂,一般初学者也很容易迷失在源码的汪洋里,本文旨在梳理Binder的架构和流程,并且试着以实用的角度来看待Binder。一、为什么需要Binder机制?Android系统中,每个应用程序是...
转载
发布博客 2019.04.06 ·
489 阅读 ·
2 点赞 ·
0 评论

Android JNI回调的三种方法

第一种方法在当前函数(同一个线程)里面回调,直接用findClass或者GetObjectClass,进行回调(国内各大博客介绍的普遍方法):java 层代码:/** * Created by jiong103 on 2017/3/23. */public class Sdk { private Sdk() { } //单例 private ...
转载
发布博客 2018.12.25 ·
1058 阅读 ·
4 点赞 ·
0 评论

AOP编程思想

   AOP(Aspect-Oriented Programming,面向方面编程),可以说是OOP(Object-Oriented Programing,面向对象编程)的补充和完善。OOP引入封装、继承和多态性等概念来建立一种对象层次结构,用以模拟公共行为的一个集合。当我们需要为分散的对象引入公共行为的时候,OOP则显得无能为力。也就是说,OOP允许你定义从上到下的关系,但并不适合定义从左到右的...
转载
发布博客 2018.12.07 ·
569 阅读 ·
0 点赞 ·
0 评论

Android 开源项目及库汇总

UIAwesome-MaterialDesign – MaterialDesignCenter改名为Awesome-MaterialDesign,优化了布局,新增了不少库。 awesome-android-ui – ui库,非常多的ui及特效。 ChipsLibrary – 在Android EditText中实现打Tag功能。 bitmapMesh – 拉窗帘效果。 Observab...
转载
发布博客 2018.11.26 ·
4444 阅读 ·
5 点赞 ·
3 评论

Android调试工具

1. 查看当前堆栈1) 功能:在程序中加入代码,使可以在logcat中看到打印出的当前函数调用关系2) 方法: new Exception(“print trace”).printStackTrace();2. MethodTracing1) 功能:用于热点分析和性能优化,分析每个函数占用的CPU时间,调用次数,函数调用关系等2) 方法:a) 在程序代码中加入追踪开关...
转载
发布博客 2018.11.26 ·
1758 阅读 ·
1 点赞 ·
0 评论

内存耗用分析:VSS/RSS/PSS/USS

VSS- Virtual Set Size 虚拟耗用内存(包含共享库占用的内存) RSS- Resident Set Size 实际使用物理内存(包含共享库占用的内存) PSS- Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存) USS- Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存)一般来说内存占用大小有如下规律...
原创
发布博客 2018.11.26 ·
13509 阅读 ·
2 点赞 ·
0 评论

Android内存优化

        避免因不正确使用内存 & 缺乏管理,从而出现 内存泄露(ML)、内存溢出(OOM)、内存空间占用过大 等问题,最终导致应用程序崩溃(Crash)示意图下面,将针对回收 进程、对象 、变量的内存分配 & 回收进行详细讲解2、 针对进程的内存策略a. 内存分配策略由 ActivityManagerService 集中管理 所有进程的内存分配b. ...
原创
发布博客 2018.11.21 ·
200 阅读 ·
1 点赞 ·
0 评论

线程和线程池

在Android中,几乎完全采用了Java中的线程机制。线程是最小的调度单位,在很多情况下为了使APP更加流程地运行,我们不可能将很多事情都放在主线程上执行,这样会造成严重卡顿(ANR),那么这些事情应该交给子线程去做,但对于一个系统而言,创建、销毁、调度线程的过程是需要开销的,所以我们并不能无限量地开启线程,那么对线程的了解就变得尤为重要了。Thread/Runnable/Callable...
转载
发布博客 2018.11.16 ·
166 阅读 ·
0 点赞 ·
0 评论

Android P 适配

Goolge自 android L (6.0) 以来就持续对安装系统进行 安全 以及 性能上的升级,此次的 android P (9.0)也不例外, 更大程度上对之前一些版本一些警告的具体落实,无论你的 Target Api 是否是 28 都将受到影响。1. 影响所有应用 (无论TargetApi 是否 28+)1.1 non-sdk 接口限制此限制不仅仅局限于sdk层 ( 直接引用 ...
转载
发布博客 2018.11.07 ·
7009 阅读 ·
2 点赞 ·
0 评论

Android各个版本的Feature变更

Android 8.0 相关变更        后台执行限制改动默认只只针对Android8.0及以上,不过用户可以设置将该改动作用于任何应用。 处于后台的应用不在允许创建后台服务了,如果创建会抛出一个IllegalStateException异常。        应用进入后台应用时会有一个时间窗,在该时间窗之内应用的后台服务还是在运行且可以创建后台服务,该事件窗口结束之后系统会将后台服务结束...
原创
发布博客 2018.11.06 ·
2666 阅读 ·
0 点赞 ·
0 评论

Android Canvas绘图

    以图形处理来说,我们最常用到的就是在一个View上画一些图片、形状或者自定义的文本内容,这里我们都是使用Canvas来实现的。你可以获取View中的Canvas对象,绘制一些自定义形状,然后调用View. invalidate方法让View重新刷新,然后绘制一个新的形状,这样达到2D动画效果。下面我们就主要来了解下Canvas的使用方法。Canvas对象的获取方式有两种:一种我们通过重...
转载
发布博客 2018.10.31 ·
3769 阅读 ·
3 点赞 ·
2 评论

android app耗电分析方法

      这是一篇讲述应用耗电的文章,围绕 Android 电量采集机制及第二代 Battery Historian 分析工具讲述。文从数据采集、导出、环境搭建、解读报告的角度出发,从细节讲解整个流程。和大谈概念的文章不同,这里将进行实际操作及分析。写作动机来源于最近的工作需求,但分析过程中发现网上资料较为匮乏。在此执笔写作,以便日后回顾,亦作为分享的机会。0x01 电量统计模块概述...
转载
发布博客 2018.10.10 ·
10857 阅读 ·
1 点赞 ·
1 评论
加载更多