Szy'sky Blog

To Be A Lean Developer!

Android系统的启动流程

第一个系统进程initAndroid设备的启动需要经过Boot Loader, Linux Kernel和Android系统服务三个核心阶段. 默认情况都有其对应的启动动画. 究其本质的话. Android系统并不算一个严格意义上的操作系统. 因为其实际上是运行在Linux内核之上的一系列的服务进程. 而正是因为这些进程才维持了设备的正常工作的关键. 而它们的祖先进程就是init 作为第......

面试之Binder的认知

说一说你对Binder的理解… Binder为何存在在日常代码编写中. 我们总是会理所应当的对函数进行调用, 对变量进行访问. 之所以能顺利访问时因为所有的函数和变量都在同一个进程之中. 也就是说因为在一个内存空间中. 虚拟地址的映射规则完全一致. 而如果想访问的是其他进程的函数或者变量, 是不可能直接通过内存地址来直接进行访问的. 既然进程之间不能访问, 那么如果通过间接的方法建......

栈与队列

栈是限定仅在表尾进行插入和删除操作的线性表. 队列是只允许在一端进行插入操作, 而在另一端进行删除操作的线性表

栈的定义 栈(stack)是限定仅在表尾进行插入和删除操作的线性表 通常把插入和删除的一端称作为栈顶(top). 另一端就是栈底(bottom), 不含有任何数据元素的栈称作为空栈. 栈又称作为后进先出(Last In First Out)的线性表. 简称LFIO结构. 栈的插入操作, 叫作进栈, 或者也可以叫作压栈,入栈. 栈的删除操作, 叫作出栈, 也可以叫作弹栈 软件被应用的场景......

线性表

数据结构之线性表

首先看一下线性表都包括哪些结构: 线性表的定义 零个或多个数据元素的有限序列. 序列: 说明了元素之间是由顺序的. 有限: 泛指元素的个数为有限. 因为计算机中处理的对象都是有限的, 无限数列只存在数学的概念中. 线性表的元素个数为>=0. 当元素的个数为0. 这个表称之为空表. 线性表的特性一个线性表应该具备哪些基本的功能呢? 置空 查找 插入 删除 长度 这是大......

算法的了解

算法究竟是什么, 都包括些什么

算法定义 算法是解决特定问题求解步骤的描述, 在计算机中表现为指令的有限序列, 并且每条指令表示一个或多个操作. 算法是针对一种或者是一类问题的解决方案. 算法的特性算法具有5个基本特性: 输入, 输出, 有穷性, 确定性和可行性. 输入输出算法具有0或者多个输入. 对于个别场景, 比如打印输出字符串. 可能会不需要任何的输入参数. 算法至少1个或者多个输出. 算法一定要有输出, 否则......

操作系统简介

硬件是软件的基石. 所有的软件功能最终都是由硬件来实现的.计算机体系结构作为一门学科, 是软件和硬件的抽象体, 也是所有开发者都应该了解的. 计算机体系结构冯’诺依曼结构冯诺依曼是20世纪公认的最伟大的科学家之一. 冯诺依曼结构又被称为冯诺依曼模型或者普林斯顿结构. 起源于其本人在1945年发表的一篇关于EDVAC(电子离散变量自动计算机)的论文. 在其中. 提出了两个对计算机领域......

vim常用笔记

介绍vi编辑器是Unix系统最初的编辑器. 它使用控制台图形模式来模拟文本编辑窗口, 允许查看文件中的行, 在文件中移动, 插入, 编辑和替换文本. 尽管可能是世界上最复杂的编辑器, 但其用用的大量特性使其成为Unix管理员多远来的支柱性工具. 在GNU项目将vi编辑器移植到开源世界时, 他们就决定对其做一些改变. 由于它不再是以前Unix中那个原始的vi编辑器, 所以开发人员对其进行了重......

shell常用小手册

文件系统遍历目录 格式: cd destination # 绝对文件路径$ cd /usr/bin# 相对文件路径 进入当前目录下的doc文件夹$ cd doc# 进入当前文件夹的同级目录pics$ cd ../pics 查看当前目录路径$ pwd 文件基本操作操作# 显示当前目录下的文件和目录, 按字母排序, 展示顺序为按列$ ls# 如果想让文件夹变得更容易区分, -F参数可让显示文件......

Android Studio 常用手册

Android studio 有我这篇就够了

整理Android群英传和网上出现的比较完整AS的快捷小技巧. mac版已测, win大部分测试. 最后有一个整理的完整快捷键表格. win也好mac也好, 如果快捷被修改还是错误, 都可以通过提供的Keymap中的关键字来进行重设. 图中gif如果看不清, 放大页面即可. 转载标明出处: 作者GitHub 博客地址 常用小操作单词选择一般IDE通过option + 方向键左右(......

年终福利-一个实用方便的图片控件SImageView(第二弹)

一行实现QQ群组头像,微信群组,圆角等效果. 并支持url直接加载图片

一年快要过去了, 你的目标实现了么? 不管实现没有, 先来个小目标吧.比如造一个轮子? 说点题外话. Coding中我们总是经历着这么几个过程. 学会使用: 不管是API也好, 开源库也好. 总是在最开始的学会去用. 了解实现原理: 可能会因为一些不兼容, 代码的异常状态的处理不够完美等需要查看实现并修改, 或者因为你有一个好奇心向窥探一下内部实现.. 这时我们开始试着去阅读, 试着......

年终福利-一个实用方便的图片控件SImageView(第一弹)

一年快要过去了, 你的目标实现了么? 不管实现没有, 先来个小目标吧.比如造一个轮子? 说点题外话. Coding中我们总是经历着这么几个过程. 学会使用: 不管是API也好, 开源库也好. 总是在最开始的学会去用. 了解实现原理: 可能会因为一些不兼容, 代码的异常状态的处理不够完美等需要查看实现并修改, 或者因为你有一个好奇心向窥探一下内部实现.. 这时我们开始试着去阅读, 试着......

设计模式之六大原则解析

列举出设计模式中的六大原则应该如何实现 单一职责原则 SRP Single Responsibility Principle 场景: 如果让你写出一个图片缓存类, 要求内部实现缓存策略, 并提供方法只需要传递控件和图片地址就可以自动设置背景的类. 先给出最简单直接的写法. public class ImageLoader { /** * 图片的缓存 ......

WindowManagerService

前一节, 对Window和WindowManager进行了分析, blog, 其中的WMS是不容忽视的角色 关于Android的framework层主要就是由它与另外一个系统服务ActivityManagerService和View构成, 这三个模块穿插在整个framework中. 和其他系统服务一样, WMS也是由SystemServer启动的. 调用了WMS#main()静态方法来......

深入WindowManager

WindowManager究竟起到了什么作用?

WindowManager的重要程度不需要多说, 界面真正的显示, 外部事件的传递等. 这是一个子系统. 本章会梳理WindowManager,WindowManagerService,Surface,SurfaceFlinger之间的联系与交互的一个过程. 如果想了解不同的window级别的区别,如Activity,Dialog,Toast等请看另一篇blog 在此之前需要知道这么几......

设计模式之路

灵活之路 - 面向对象六大原则如果下面文字描述,不是很明白那么跳转到后面链接有详细代码说明原则解析 单一职责原则SRP(Single Responsibility Principle) 定义: 就一个类而言, 应该仅有一个引起它的变化的原因. 通俗点就是一个类应该是相关性很高数据封装 举例: 现在有一个图片加载类. 但是这个类内部包含了图片下载的逻辑,图片缓存的逻辑这样就使得这个类的职责过......