自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小码快跑

路漫漫其修远兮,吾将上下而求索。

  • 博客(73)
  • 资源 (9)
  • 收藏
  • 关注

原创 AOSP-系统应用-Keyguard源码解读

文章目录前言核心文件KeyguardServiceKeyguardViewMediatorKeyguardUpdateMonitorStatusBarKeyguardViewManagerKeyguardBouncerKeyguardSecurityContainer框架相关文件KeyguardServiceDelegate前言本文基于 AOSP android 12 源码。核心文件platform_frameworks_base\packages\SystemUI\src\com\android\

2021-11-20 01:20:13 2017

原创 Android Keyguard 亮灭屏流程分析

文章目录开篇Power灭屏开篇PowerManagerService(PMS) 中定义了四种屏幕状态:awake:唤醒状态dream:屏保状态dozesleep:休眠状态Power灭屏按下Power键时,PhoneWindowManager 接收到按键事件,处理Power键 interceptPowerKeyUp抬起事件时,开始了灭屏流程:powerPress··...

2021-11-04 00:35:29 2147

原创 AOSP-系统应用-SystemUI

简介在 Android 系统中,源码位置为 frameworks/base/packages/SystemUI。原生代码:https://github.com/aosp-mirror/platform_frameworks_base/tree/master/packages/SystemUI组件StatusBar 状态栏NavigationBar 导航栏Notification 通知Keyguard 锁屏RecentTaskVolumeUI 音量UIPowerUI 电量UI

2021-08-16 23:52:52 809

原创 kotlin学习指南

基本语法程序入口fun main() { println("Hello Kotlin!")}数据类型基本类型:数字(整数与浮点数)、字符、布尔值、数组、字符串。ByteShortIntLongFloatDouble对于以小数初始化的变量,编译器会推断为 Double 类型。 如需将一个值显式指定为 Float 类型,请添加 f 或 F 后缀。变量...

2021-05-13 18:09:11 804 3

原创 android-框架篇-OkHttp-3.9.0

名称开发者时间备注RetrofitSquareJakeWhartonOkHttpSquare2013-05-06VolleyGoogle2013适合数据量大,需要频繁通信的网络操作。不适用文件的上传下载操作。Android-Async-HttpApache HttpClientApacheAPI 23:Android 6.0上被删除HttpURLConnectionJDKjava.net包下OkHttp官网h...

2021-03-09 23:08:38 189 1

原创 android SDK 开发说明

文章目录SDK开发最终交付物开发原则编码规范性能安全与校验SDK集成SDK(Software Development Kit)软件开发工具包。如:推送SDK、分享SDK等。SDK 实现目标:简洁、稳定、高效。SDK开发最终交付物代码接入文档 文档内容包括:更新记录、基本信息、API 说明、集成步骤、FAQ等。Demo 示例开发原则核心原则稳定,不能导致APP的崩溃。设计原则可维护性、可重用性、可扩展性接口易用性——降低接入方的使用难度兼容性——新版本对旧版本的兼容命

2021-03-04 22:15:29 402 1

原创 MVC-MVP-MVVM-MVI

小序框架面向于一系列相同行为代码的重用,而设计则面向的是一系列相同结构代码的重用。简而言之:框架是大智慧,用来对软件设计进行分工;设计模式是小技巧,对具体问题提出解决方案,以提高代码复用率,降低耦合度。对待框架演变的态度:所谓真理只是在特定领域条件下成立的教条理论罢了。MVCModel-View-Controller(模型-视图-控制器)MVC是一种框架模式而非设计模式,GOF把MVC看作是3种设计模式:观察者模式、策略模式与组合模式的合体,而且其核心在观察者模式,也就是一个基于发布/订阅者模

2021-01-27 21:56:12 783

原创 软件架构详解

引言软件架构(Software Architecture)是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计。软件架构是一个系统的草图。软件架构描述的对象是直接构成系统的抽象组件。各个组件之间的连接则明确和相对细致地描述组件之间的通讯。在实现阶段,这些抽象组件被细化为实际的组件,如具体某个类或对象。轻量级JavaEE(Struts+Spring+Hibernate)重量级JavaEE(JSF+EJB+JPA)架构模式 描述软件系统里的基本的结构组织或纲要。从定义上来看,它是在指导我们如何组织代

2021-01-27 21:43:04 681 1

原创 android组件化

模块化是业务导向,组件化是功能导向。模块化模块化编程将程序按照功能拆分成相互独立的若干模块。

2021-01-27 16:03:20 1142 6

原创 git 权威指南

文章目录配置用户名、邮箱git 克隆代码到本地配置用户名、邮箱// 全局配置git config -global user.name xxxgit config -global user.email xxx// 查看当前配置git config -list // 仅配置自己的项目,命令界面切换到项目根目录,执行如下操作git config user.name xxxgit config user.email xxxgit config --listgit 克隆代码到本地// 默认

2020-07-08 08:58:18 338 2

原创 React Native 热更新框架 - PUSHY

文章目录安装配置Bundle URL创建应用代码集成发布热更新安装项目根目录下运行如下命令:# 全局安装命令行工具,每台电脑只用装一次yarn global add react-native-update-cli# 在项目中安装热更新模块yarn add react-native-update配置Bundle URLhttps://pushy.reactnative.cn/docs/getting-started.html创建应用注册账号 https://update.reactna

2020-06-26 16:55:35 1772

原创 iOS 应用调试、打包、上架全流程

文章目录准备证书Xcode 打包上架App 管理准备注册 Apple ID,https://developer.apple.com/account/注册 开发者账号(收费)生成证书(开发或发布)。在开发者官网账号菜单下,点击菜单 Certificates, Identifiers & Profiles,生成证书,绑定 Bundle Id,绑定设备,生成描述文件。申请开发者账号方式一:进入开发者官方网站,https://developer.apple.com/方式二:在苹果手机

2020-06-20 17:35:43 2564

原创 计算机网络(HTTP TCP/IP)

文章目录网络基础OSIHTTPHTTPS网络基础局域网(LAN)、城域网(MAN)、广域网(WAN)拓扑结构:星型网络、总线型网络、环型网络、树型网络、星型环型网络等;传输介质:双绞线网、同轴电缆网、光纤网和卫星网等;通信协议三部分组成:语义部分、语法部分、变换规则;IP(Internet Protocol)又称互联网协议,是支持网间互联的数据报协议。IP 地址分为A、B、C、D、E,每个类别的网络标识和主机标识各有规则。IP 地址用于唯一地标识网络上的一个通信实体,但一个通信实体可以有多个

2020-05-23 19:59:26 666

原创 数据结构与算法分析(排序)

文章目录概述插入排序选择排序快速排序(交互排序)冒泡排序(交互排序)归并排序基数排序概述排序是计算机程序设计中的一种重要操作,它的功能是将一个数据元素(或记录)的任意序列,重新排列成一个按关键字有序的序列。插入排序希尔排序选择排序堆排序快速排序(交互排序)冒泡排序(交互排序)归并排序基数排序...

2020-05-21 23:39:11 336

原创 数据结构与算法分析(查找)

文章目录静态查找表二叉排序树平衡二叉树B-树和B+树哈希表(查找)静态查找表二叉排序树平衡二叉树B-树和B+树哈希表(查找)散列或哈希Hash 是把任意长度的输入通过散列算法变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来确定唯一的输入值。哈希表给定表 M,存在函数 f(key),对任意给定的关键字值 key,代入函数后若能得到包含该关键字的记录在表中的地址,则称表 M 为哈希

2020-05-21 23:29:03 294

原创 android-性能篇-卡顿与ANR

ANR即使编写出能够通过世界上的所有性能测试的代码,却仍有可能让用户感觉迟钝、发生挂起或卡住很长时间,或者处理输入的时间过长。在应用响应能力方面可能发生的最糟糕的情况就是“应用无响应”(ANR) 对话框。在 Android 中,系统会通过显示说明应用已停止响应的对话框来防范在一段时间内响应不足的应用。此时,应用已在相当长的一段时间内没有响应,因此系统会向用户提供退出此应用的选项。在设计应用时应充分考虑响应能力,让系统永远不会向用户显示 ANR 对话框,这一点至关重要。什么会触发ANR?当应用无法响应

2020-05-21 09:12:33 724

原创 java 编码规范

代码格式【强制】IDE 的 text file encoding 设置为 UTF-8;文件的换行符使用 Unix(\n)格式,不要使用 Windows(\r\n)格式。【强制】单行字符数限制不超过 120 个,超出需要换行。【推荐】单个方法的总行数不超过 80 行。正例: 代码逻辑分清红花和绿叶,个性和共性,绿叶逻辑单独出来成为额外方法,使主干代码更加清晰;共性逻辑抽取成为共性方法,便于复用和维护。【推荐】不同逻辑、不同语义、不同业务的代码之间插入一个空行分隔开来以提升可读性。OOP规约【强制

2020-05-20 20:01:09 637

原创 Android应用数据和文件

键值对保存一个相对较小的键值对集合,则应使用 SharedPreferences。数据库Room 在 SQLite 上提供了一个抽象层,以便在充分利用 SQLite 的强大功能的同时,能够流畅地访问数据库。SQLite 使用注意:要在应用中使用 Room,请在应用的 build.gradle 文件中声明 Room 依赖项。分享数据app安装位置从 API 级别 8 开始,您可以允许应用安装到外部存储装置(例如,设备的 SD 卡)。您可以使用 android:installLocation 清

2020-05-17 21:37:14 463

原创 android-学习篇-BroadcastReceiver(广播)

文章目录简介接收广播发送广播通过权限限制广播对进程状态的影响参考简介Android 应用与系统和其他应用之间可以相互收发广播消息,这与发布-订阅设计模式相似。这些广播会在所关注的事件发生时发送。接收广播由于接收器的 onReceive(Context, Intent) 方法在主线程上运行,因此它会快速执行并返回。广播接收操作在10秒内完成。方式一 清单文件中声名 <receiver android:name=".MyBroadcastReceiver" android:export

2020-05-17 15:53:12 360

原创 android-学习篇-Service(服务)

简介Service 是一种可在后台执行长时间运行操作而不提供界面的应用组件。两种工作状态:启动状态,主要用于执行后台计算。startService()绑定状态,主要用于其他组件和 Service 的交互。bindService()创建 Service自定义类继承 ServiceServicepackage android.app;public abstract class Service extends ContextWrapper implements ComponentCall

2020-05-17 14:22:19 155

原创 Android后台任务

简介每个 Android 应用都有一个主线程,负责处理界面(包括测量和绘制视图)、协调用户互动以及接收生命周期事件。如果有太多工作在主线程中进行,则应用可能会挂起或运行速度变慢,从而导致用户体验不佳。任何长时间运行的计算和操作(例如解码位图、访问磁盘或执行网络请求)都应在单独的后台线程上完成。一般来说,任何所需时间超过几毫秒的任务都应该分派到后台线程。在用户与应用积极互动时,可能需要执行几项这样的任务。后台处理的挑战后台任务会使用设备的有限资源,例如 RAM 和电池电量。如果处理不当,可能会导致用户体

2020-05-17 14:21:44 870

原创 android-学习篇-基础知识

四大组件ActivityBroadcastReceiverServiceService分为两种工作状态:启动状态,主要用于执行后台计算。绑定状态,主要用于其他组件和Service的交互。ContentProviderIntenthttps://developer.android.google.cn/guide/components/intents-filters.htmlAnimator逐帧动画:Drawable Animation。res/anim,android:onesho

2020-05-17 14:18:27 310

原创 Android进程间通信

简介IPC(Inter-Process Communication,进程间通信)Android 平台下,各个进程都占有一块自己独有的内存空间,各个进程在通常情况下只能访问自己独有的内存空间,而不能对别的进程的内存空间进行访问。因此,为进行通信,进程需将其对象分解成可供操作系统理解的原语,并将其编组为可供您操作的对象。编写执行该编组操作的代码较为繁琐,因此 Android 会使用 AIDL 为您处理此问题。AIDLAIDL(Android Interface Definition Language,即

2020-05-17 13:00:37 233

原创 java-学习篇-可重入锁(ReentrantLock)

文章目录概览内部类方法使用概览package java.util.concurrent.locks;public class ReentrantLock implements Lock, java.io.Serializable内部类ReentrantLock 默认使用非公平锁,也可以通过构造器来显示的指定使用公平锁。abstract static class Sync extends AbstractQueuedSynchronizerabstract void lock();// 加锁,

2020-05-16 16:11:42 184

原创 java-学习篇-锁

乐观锁 / 悲观锁公平锁 / 非公平锁可重入锁 / 非可重入锁独享锁 / 共享锁无锁 / 偏向锁/轻量级锁/重量级锁自旋锁 / 适应性自旋锁互斥锁 / 读写锁分段锁

2020-05-15 23:37:09 133

原创 Android Gradle Plugin

文章目录概览3.5.0 (2019/8)3.4.0 (2019/4)3.3.0 (2019/1)3.2.0 (2018/9)3.1.0 (2018/3)3.0.0 (2017/10)参考概览Android Studio 构建系统以Gradle为基础,Android Gradle plugin 添加了几项专用于构建 Android 应用的功能。Gradle 和 Android 插件独立于 Android Studio 运行。这意味着,您可以在 Android Studio 内、计算机上的命令行或未安装

2020-05-15 23:36:07 630 1

原创 数据结构指南

文章目录数组栈队列链表散列表树图数组数组是在内存中存储相同数据类型的连续的内存空间。栈栈实现的是一种后进先出(last-in,first-out,LIFO)策略。栈上的 INSERT 操作称为压入(PUSH),而无元素参数的 DELETE 操作称为弹出(POP)。队列队列实现的是一种先进先出(first-in,first-out,FIFO)策略。链表散列表散列函数树平...

2020-05-06 23:45:00 428

原创 web框架:Vue.js详解

简介Vue.js 只聚焦视图层,是一个构建数据驱动的 Web 界面的库。特性:轻量数据绑定指令插件化与其他框架的区别ReactAngular 1Angular 2KnockoutPolymerRiot数据绑定数据绑定将数据与视图相关联,当数据发生变化时,可以自动更新视图。// 插值,使用双大括号<span>{{text}}</span>...

2020-05-06 11:43:52 486

原创 算法的时间复杂度与空间复杂度

时间复杂度与空间复杂度

2020-05-05 23:34:30 1079

原创 java-源码篇-HashMap

摘要java 8 对 HashMap 底层的实现进行了优化。存储结构从结构实现来讲,HashMap 是数组 + 链表 + 红黑树(java 8 增加了红黑树部分)实现的。HashMap 就是使用哈希表来存储的。哈希表为解决冲突,可以采用开放寻址法和链地址法等来解决问题,java 中 HashMap 采用了链地址法。通过什么方式来控制map使得Hash碰撞的概率又小,哈希桶数组占用空间又少...

2020-05-04 23:27:56 182

原创 java-学习篇-线程池

线程越多越好?时间资源线程在java中是一个对象,每一个java线程都需要一个操作系统线程支持。线程创建、销毁需要时间。操作系统需要频繁切换上下文,过多线程的调度影响性能。空间资源java对象占用堆内存,操作系统线程占用系统内存。JVM规定一个线程默认最大栈大小1M,栈空间需要从系统内存中分配。线程池实现原理...

2020-05-04 15:12:36 141

原创 java-学习篇-并发容器和框架(java.util.concurrent)

ConcurrentHashMap多线程环境下,HashMap 进行put操作会引起死循环HashTable 容器使用synchronized来保证线程安全,但在线程竞争激烈的情况下HashTable的效率非常低下。因为当一个线程访问HashTable的同步方法,其他线程也访问HashTable的同步方法时,会进入阻塞或轮询状态。ConcurrentHashMap 分段锁技术可有效提升并发...

2020-05-04 15:12:03 148

原创 android-源码篇-Handler

背景有时候需要在子线程中进行耗时的 I/O 操作,读取文件或者访问网络等,当耗时操作完成以后可能需要在 UI 上做一些改变,由于 Android 开发规范的限制,不能在子线程中访问 UI 控件,否则就会触发程序异常,这个时候通过 Handler 就可以将更新 UI 的操作切换到主线程中执行。相关类HandlerLooper(消息循环)Message(消息)MessageQueue(存...

2020-05-03 18:50:48 164

原创 android-view篇-ConstraintLayout 约束布局

文章目录概述相对定位边距居中和偏移Circular positioning尺寸约束链GroupGuideline参考概述ConstraintLayout 主要是为了解决布局嵌套过多的问题,以灵活的方式定位和调整小部件。Android Studio 2.3 开始,官方模板默认使用 ConstraintLayout。添加依赖,如下:implementation 'com.android.sup...

2020-05-02 23:22:54 636

原创 Android Studio 历史版本

文章目录3.6(2020年2月25日)3.5 (2019年8月)3.4 (2019年4月)3.3 (2019年1月)3.0 (2017年10月)Android Gradle plugin简介3.5.0 (August 2019)3.4.0 (April 2019)3.3.0 (January 2019)3.2.0 (September 2018)3.1.0 (March 2018)3.0.0 (O...

2020-04-30 22:39:29 7058 1

原创 跨平台技术 - Flutter 环境配置

文章目录官网使用镜像环境flutter命令问题学习点官网Flutter官网 https://flutter.dev/Flutter中文社区 https://flutter.cn/使用镜像由于在国内访问 Flutter 有时可能会受到限制,Flutter 官方为中国开发者搭建了临时镜像,大家可以将如下环境变量加入到用户环境变量中:PUB_HOSTED_URL=https://pub.fl...

2020-04-20 23:21:14 859

原创 移动开发技术的进化历程(原生开发与跨平台技术)

文章目录原生开发跨平台技术Hybrid 技术JavaScript开发 与 原生渲染React NativeWeex快应用总结自绘UI 与 原生QTFlutter总结原生开发原生应用程序是指某一个移动平台(比如iOS或安卓)所特有的应用,使用相应平台支持的开发工具和语言,并直接调用系统提供的SDK API。比如 Android 原生应用就是指使用 Java 或 Kotlin 语言直接调用Andr...

2020-04-19 20:22:30 2278 1

原创 ES6(ECMAScript 2015) 标准参考

概述ES6 在2015年6月正式发布。ES6 既是一个历史名词,也是一个泛指,含义是5.1版本以后的 JavaScript 的下一代标准,涵盖了ES2015、ES2016、ES2017等,而 ES2015 则是正式名称,特指当年发布的正式版本的语言标准。letES6 新增了 let 命令,用于声明变量。用法类似于 var,但是所声明的变量只在 let 命令所在的代码块内有效。const...

2020-04-19 15:24:19 582

原创 npm使用大全

文章目录概述package.jsonconfiginstalluninstallrootupdate淘宝npm镜像概述中文文档package.json英文文档中文文档The best way to manage locally installed npm packages is to create a package.json file.A package.json must hav...

2020-04-11 18:20:23 205

原创 Visual Studio Code 最强教程

文章目录概述软件汉化Settings快捷键扩展)DebugVersion ControlIntegrated TerminalVue历史版本1.44(March 2020)工欲善其事,必先利其器。——《论语·卫灵公》概述https://code.visualstudio.com/官网介绍文档Windows平台安装Visual Studio Code分以下版本:User Insta...

2020-04-11 15:16:56 777

基于人工神经网络的数码识别

基于人工神经网络的数码识别

2015-06-03

电子表代码

电子表代码,值得下载

2015-06-03

高校仪器设备管理系统毕业论文

高校仪器设备管理系统毕业论文,绝对干货,值得拥有

2015-06-03

高校仪器设备管理系统毕业设计开题报告

高校仪器设备管理系统毕业设计开题报告

2015-06-03

JDK_API文档

Java开发API工具,下载拥有吧。

2014-12-07

Eclipse的快捷键

eclipse快捷键,值得拥有。

2014-12-07

apache-tomcat

apache-tomcat-7.0.23.exe

2013-05-21

实现LR分析法

  实验二、语法分析实验    实现LR分析法(P147,例4.6)      或预测分析法(P121,例4.3)

2013-05-21

计算机组成原理 唐朔飞第二版 课后习题答案完整版

计算机组成原理 唐朔飞第二版 课后习题答案完整版

2013-05-21

空空如也

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

TA关注的人

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