自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

追yi流年

积跬步以致千里,积小流以成江海

  • 博客(84)
  • 资源 (24)
  • 收藏
  • 关注

原创 (二)kotlin基础语法概述

记录学习过程,用简短的话描述核心价值。本文主要对kotlin的一些基本知识进行简单的介绍。1、函数kotlin中,代码末尾不需要分号(;)结束, 用fun声明一个函数,以下是声明一个无返回值的函数:/** * fun:声明一个函数 */fun main(args: Array<String>) {//参数名字冒号接上参数的类型 println("Hello wor...

2020-03-15 21:34:36 610

原创 (一)kotlin简介及相关工具介绍

kotlin目标平台–哪些地方可以使用kotlinkotlin已经作为Google官方语言,用于Android的开发。但实际上除了Android,任何java可运行的地方,都可以用kotlin来替代,因为kotlin也是运行在JVM虚拟机上的, kotlin还可以编译为javascritp, 所以服务端也能使用kotlin。kotlin代码编译过程kotlin的文件后缀是kt, 和jav...

2020-03-15 16:24:16 744

原创 Android源码解析--ContentProvider的创建及启动流程

分析源码:Android 8.0本文主要分析调用getContentResolver方法以后,获取到ContentProvider的流程,或者说getContentResolver方法以后,和ContentProvider建立联系的流程。Provider的启动及创建流程在前面一篇博客 ContentResolver与ContentProvider的搭配使用 讲到了ContentResolv...

2019-10-20 22:18:57 834

转载 android分析ContentProvider onCreate()在 Application onCreate()之前执行

原文作者:Brandon777链接:https://juejin.im/post/59c24b256fb9a00a496e5ec4来源:掘金bind Application的方法handleBindApplication(AppBindData data)内部代码块try {4524 // If the app is being launched for ful...

2019-10-13 20:14:57 5661

原创 Android MVC、MVP模式的本质区别 及MVP升级版概述

MVC简介MVC模式示意图web中的MVCMVC架构在web领域应用很广泛, 用户通过界面(view层)操作,然后相应动作会传递给Controller,Controller根据业务逻辑去操作数据层(Model层),然后数据层把得到的数据回调给View层进行更新,数据层可能是操作本地数据库,也可能是访问服务端获取数据。 这就是MVC设计模式的基本思想。从设计上来看,MVC较好的把View视...

2019-10-07 19:30:38 395

原创 ContentResolver与ContentProvider的搭配使用

简介Android中, ContentResolver是通过Uri来获取对应数据的数据, 而提供数据的,通常就是ContentProvider。ContentProvider可以作为一个公共的数据源,为多个app提供数据的增删改查。以下例子先建立一个ContentProvider, 在其内部简历数据库,然后让ContentResolver来查询数据。一、ContentProvider的创建...

2019-10-06 18:06:07 2272

转载 资深大牛告诉你什么是架构师

原文链接:https://blog.51cto.com/14528804/2434863?source=dra对于工作多年的程序员而言,日后的职业发展无非是继续专精技术、转型管理和晋升架构师三种选择。架构师在一家公司有多重要、优秀架构师需要具备怎样的素质以及架构师的发展现状三个方面来分析程序员如何才能晋升为优秀的高薪架构师?希望通过本文让程序员们了解架构师的市场行情,了解架构师的发展前景,...

2019-10-04 11:35:57 2317

原创 关于程序员应该如何学习的一些思考

问题有一些问题想了很久:为何别人那么牛逼?写代码信手拈来,讲理论头头是道,架构设计说来就来,既会java又会c++还能写python? 为什么有的人看《Think in java》《现代操作系统》《深入理解计算机系统》等砖头一两周就能看完一本, 有的人一年都看不完一本?为什么有的人学了就不会忘记,而我学完很快就又忘记了?这些问题响了不是一两天了,最近几年都在思考,但是一直没写下来。关于看书速...

2019-10-02 23:01:25 473 1

原创 Git常用命令总结

本篇是对自己学习git的一个小小的总结创建版本库windows安装git后, 在开始菜单里面 搜索“git bash”, 点击就能打开git命令窗口,切换到某个目录下,执行 git init ,则此目录变为git管理的仓库;工作区、暂存区、分支电脑上目录及文件,就是存在于工作区版本库上图中可以看到一个.git的隐藏目录,这个不是工作区,是Git的版本库。版本库中存放了很多东西,其...

2019-09-22 22:43:46 169

原创 Android(java)中线程的线程池

1、线程池简介线程池是我们在开发过程中用的比较多的一个功能,在Android中的线程池和其实和java是保持一致的,并无什么区别。使用线程池的好处主要有以下三个:1、重用线程池,避免现线程的创建和销毁所带来的的性能开销;2、能有效控制线程池的最大并发数,避免大量线程之间因相互抢夺资源而造成阻塞;3、能够对线程进行简单的管理,并提供定时执行及指定间隔循环等功能;线程池的概念抽象类是Ex...

2019-06-30 23:13:21 404

原创 Android AsyncTask的使用及源码分析

在上一篇博客中,我们提到AsyncTask的任务默认是串行执行的,并且AsyncTask对象必须在主线程中创建,并且一个AsyncTask对象只能执行一次execute方法,否则就会报错,这一切的原因是什么呢?本文就将通过源码分析来解释这几个问题。首先来再看一下AsyncTask的几个核心方法:excute: 创建好AsyncTask对象后,需要调用此方法才开始执行任务;onPreExec...

2019-06-30 10:24:22 237

原创 Android中线程的不同形态(Thread、AsyncTask、HandlerThread、IntentService)

线程作为CPU最小调度单位,使我们开发中进程需要用到的功能。在Android中,除了java原本就提供的Thread以外,还提供了其他形式的线程,如AsyncTask、IntentService、HandlerThread, 它们的底层还是都封装的Thread,但却提供了更加丰富的功能。所以在Android中,常用的线程的形态有:1、Thread;2、AsyncTask;3、IntentS...

2019-06-29 20:33:32 327

原创 Android除了三大动画,还有哪些动画?

在上一篇博客Android的三种动画详解 中讲解了Android的帧动画、View动画(补间动画)、属性动画。 这三种动画已能解决绝大部分需求,但实际上,随着Android的发展,有越来越多的动画产生,有的是Android原生的,有的是三方开源的,本文就此做了一个简单的梳理。1、Lottie动画(三方开源)Lottie是Airbnb开源的一个支持 Android、iOS 以及 ReactNa...

2019-06-22 18:28:03 1319

原创 Android的三种动画详解(帧动画、View动画、属性动画)

Android的动画分为了三种, 分别是 帧动画、View动画、属性动画。1、帧动画帧动画就是顺序播放一组预先定义好的图片,就类似于我们观看视频,就是一张一张的图片连续播放。帧动画的使用很简单,总共就两个步骤:1、在res/drawable目录下定义一个XML文件,根节点为系统提供的animation-list,然后放入定义更好的图片;2、使用AnimationDrawable类播放第...

2019-06-21 22:54:03 34488 2

原创 Android常用的数据库语句

1、数据库语句1.1、创建数据库create database 数据库名称 character set 字符集名称 ;create database 数据库名称 character set 字符集名称 collate collate名称(具体查询API)例:create database mydb1 character set utf8 collate utf8_general_ci;...

2019-06-21 16:56:52 1810

原创 Android View的测量、布局、绘制过程详解(下)

View的measure()方法是final的,因此我们无法在子类中去重写这个方法,在该方法内部会调用onMeasure()方法。所以我们自定义view时,要重写也是重写onMeasure方法。同理,layout、draw也是final的,我们根据需要重写onLayout和onDraw方法即可。1、measure过程measure过程要分成两种情况来看:1、如果只是一个view,那么直接调...

2019-06-18 22:39:22 3256

原创 Android View的测量、布局、绘制过程详解(上)

Android View的绘制过程主要有三步:测量 Measure布局 Layout绘制 Draw首先理解MeasureSpec的含义,然后跟踪ViewGroup的measure、layout、draw三个方法即可view的绘制流程是我们在自定义View中通常会使用到的一个知识点,也是一个面试常问的点。简直是Android开发必备知识。1、理解ViewRootImpl和DecorV...

2019-06-17 22:32:34 1324 1

原创 Android 事件传递机制详解(事件的分发、拦截、处理)

1、事件在Android中的传递顺序事件在Android的传递顺序:Activity--> Window-->DecorView --> 布局View或者说以上顺序是事件在应用层的传递顺序。如果要说整个事件的传递机制,是Android底层收到触摸屏的事件后,使用socket跨进程通信,用InputDispatcher将事件发送给APP进程,由主线程的Looper去取出消...

2019-06-16 12:04:28 19679 2

原创 Android消息机制详解:Handler、MessageQueue、Looper

1、Handler的诞生背景在Android中,规定了只能在主线程(或者叫UI线程)中,去进行UI相关的操作,而其他线程则无法操作UI,否则报错;但同时,由于不能再UI线程进行耗时的操作,否则会报ANR异常, 因此,我们通常又把耗时操作放到子线程去进行一个处理。那这就涉及到了一个数据传递的问题,我们在子线程处理的数据,怎么传递到主线程呢?这就有了Handler消息机制。为什么要设计为只能在...

2019-06-15 21:58:55 599

原创 Android消息机制--Handler的常见用法介绍

1、Handler的诞生背景在Android中,规定了只能在主线程(或者叫UI线程)中,去进行UI相关的操作,而其他线程则无法操作UI,否则报错;但同时,由于不能再UI线程进行耗时的操作,否则会报ANR异常, 因此,我们通常又把耗时操作放到子线程去进行一个处理。那这就涉及到了一个数据传递的问题,我们在子线程处理的数据,怎么传递到主线程呢?这就有了Handler消息机制。2、Handler、...

2019-06-14 21:52:57 153

原创 用AndroidStudio编译出jar包的方法

最近由于项目需要,需要用到AndroidStudio编译jar包,赶紧搜了一波资料学习学习,现在总结如下。AndroidStudio先执行一次 make Project, 生成然后在app/build.gradle中的 android{} 中, 增加以下配置:task makeJar(type:org.gradle.api.tasks.bundling.Jar) { baseNam...

2019-04-24 21:26:11 4167 1

原创 Android源码解析--ActivityManagerService详解(一):从开机启动的角度解析AMS

ActivityManagerService是Android系统中一个特别重要的系统服务,也是我们上层APP打交道最多的系统服务之一。ActivityManagerService(以下简称AMS) 主要负责四大组件的启动、切换、调度以及应用进程的管理和调度工作。所有的APP应用都需要与AMS打交道。本文将从Android系统启动的过程中,去理解在系统启动时,AMS如何启动并完成初始化的,以及在...

2019-04-21 11:20:25 2558

原创 Android源码解析--ClipBoardService(粘贴板)服务详解

ClipBoardService是Android的粘贴板服务,我们的复制粘贴都需要通过这个服务来完成。1、与ClipBoardService相关的类如下图所示, ClipBoardService服务核心的几个类:android.content.ClipBoardManager: 继承自android.text.ClipBoardManager, 这是一个兼容性的设计, 早期android只...

2019-04-06 22:13:57 3756

原创 Android源码解析--SamplingProfilerService(系统性能分析)服务详解

SamplingProfilerService,从字面理解,就是采样剖析服务, 该服务用来进行性能采样及统计。1、SamplingProfilerService首先看一下SamplingProfilerService在SystemServer中的添加代码: ServiceManager.addService("samplingprofiler", new Samplin...

2019-04-03 23:07:26 891

原创 Android源码解析--DeviceStorageManagerService(DeviceStorageMonitorService)服务详解

DiskStatsService和DeviceStorageMonitorService两个服务都和系统内部存储管理、监控有关。这一篇继续学习DeviceStorageMonitorService(以下简称DSMS)。DeviceStorageMonitorService和DeviceStorageManagerService是一个东西,只是在5.0以后,名字改为了DeviceStorageM...

2019-04-01 23:03:15 2664

原创 Android源码解析--DiskStatsService(存储管理)服务详解

DiskStatsService和DeviceStorageMonitorService两个服务都和系统内部存储管理、监控有关。这里先讲DiskStatsServiceDiskStatsServiceDiskStatsService很简单,代码只有100行左右,它直接继承自Binder,却没有实现Binder的任何接口:/** * This service exists only as ...

2019-03-31 22:31:17 1111

原创 Android源码解析--dropbox日志:DropBoxManagerService(DBMS)服务详解

DropBoxManagerService简介DropBoxManagerService(简称DBMS)是日志相关的服务,用于生成与管理 系统运行时的一些日志文件。日志文件大多记录的是系统或某个应用出错的日志信息。该**日志输出在dropbox目录下**。它在SystemServer启动以后被添加到ServiceManager中: ServiceManager.addService(Con...

2019-03-31 14:19:42 1999

原创 Android源码解析--EntropyMixer(EntropyService 随机数)服务详解

分析源码为Android5.1(android 22)EntropyMixer(EntropyService)不明白Google为什么要改名字, 以前的EntropyService类名改为了EntropyMixer。EntropyMixer服务主要用来产生随机数.在Android4.0以后已经更新为EntropyMixer类了,名字变了,功能还是那些。物理学上定义熵的定义,一个系统中熵越大...

2019-03-30 19:39:48 1399

原创 Android源码解析--SystemServer启动的各种服务汇总集合

要想了解Android系统,了解SystemServer进程及其启动的各种核心服务,是一个必要的过程,SystemServer启动了几十个服务,这里我们选择其中的一部分进行分析:1、EntropyMixer(EntropyService) 随机数服务...

2019-03-30 19:38:56 534

原创 Android源码解析--SystemServer启动流程

1.前言在整个android系统中,进程的启动流程如下:init进程 –&gt; Zygote进程 –&gt; SystemServer进程 –&gt;各种应用进程先启动init进程,它是整个linux系统的根进程,接着启动了Zygote进程,它是Android系统的根进程,接着启动的就是本文要讲到的SystemServer进程,它管理着Android系统的各种系统服务,然后才是启动各种...

2019-03-13 21:56:41 926 1

原创 Activity、Service和Application的Context的区别

1、Context的类图Context:是一个接口类,主要提供通用接口ContextImpl:Context接口的具体实现类ContextWrapper:Context的包装类,内部持有一个ContextImpl的实例对象mBase,对Context的操作最终都进入ContextImpl类ContextThemeWrapper:该类内部包含了主题(Theme)相关的接口,...

2019-03-12 22:33:12 5556

翻译 《现代操作系统(中文第四版)》课后习题答案 第四章 文件系统

题目略。1、使用 . 或 …切换文件路径/etc/passwd/./etc/passwd/././etc/passwd/./././etc/passwd/etc/../etc/passwd/etc/../etc/../etc/passwd/etc/../etc/../etc/../etc/passwd/etc/../etc/../etc/../etc/../etc/passwd...

2019-03-12 22:00:41 17539 13

翻译 《现代操作系统(中文第四版)》课后习题答案 第三章 内存管理

题目略1、答:首先,需要特殊的硬件来进行比较,而且它必须很快,因为它用于每个内存引用。第二,使用4位键,一次只能在内存中存储16个程序(其中一个是操作系统)。2、答:这是一个巧合。基址寄存器的值为16384是因为程序恰好在地址16384上加载。程序可以在任何地方加载。界限寄存器为16384是因为程序具有16384字节的长度。程序可以有任意的长度。加载地址与程序长度相等仅仅是一种巧合。3、答:...

2019-03-12 05:16:35 18975 13

原创 算法与数据结构--图论基础知识

字体改成红色了 1、图论基础概念 Graph Theory图 :是由由 节点 和 边 组成的数据模型,它有两个重要部分1、节点2、边节点是两个村, 边表示两个村直接连通的道路或者节点是人, 边表示人与人之间的关系。点是一个域名, 边是域名之间的调整无向图:边是没有方向的(如两个村是否有道路连接)有向图:边有方向(人际关系网,你认识他,他不认识你)有向图会使图更加复杂。...

2019-03-06 20:45:18 514

原创 算法与数据结构--并查集

序两个点是否连接, 在大型网络中,肉眼很难观察出来。如何判断一个巨大网络中两个点是否连接,这个网络不一定是互联网,也可能是微信中的人际关系网,两个人是否是好友,是否有连接?巨大数据库中,电影与音乐是否有交集, 网络路由器是否连接?他们的连接路径有多少条?具体路径分别是什么?想要解决两个点是否连接,是否有交集的问题,最快速的方法就是使用并查集。 而要解决他们的连接路径有多少以及具体路径,就需...

2019-03-03 12:38:00 248

原创 八大排序算法--基数排序

基数排序定义基数排序(radix sort)是一种桶排序(bucket sort), 先把个位相同的数字放到同一个桶里,然后完成对个位数字大小的排序,然后再在前面的基础上对十位 上的数字进行排序,然后依次进行到最高位, 最后完成整个排序。算法分析对于十进制来说,每个位 总共有 0~9 10 种可能举一个例子, 对一下数组进行排序:[34, 62, 11, 56, 4, 73, 2, 25...

2019-02-25 21:41:26 246

原创 八大排序算法--堆排序的优化(原地堆排序、索引堆)

优化一----原地堆排序前一篇博客我们都需要开辟一个新的数组 来进行堆的存放,下面将讲述原地堆排序。在前面讲到,堆是存放在一个数组中的,如果我们不想开辟新空间,在原来数组上依然可以实现堆排序,不过索引位置就要从0开始了。新的计算公式如上图,新的公式可以通过上图归纳出来:知道子节点索引为i, 求父节点索引: parent(i) = (i-1) / 2知道父节点索引为i,求左右子节点的索...

2019-02-24 18:14:55 829

原创 八大排序算法--堆排序

序言对于堆排序的学习,实际上就是对于 堆 这一种数据结构的学习,把堆学会了,堆排序自然也就学会了。1、为什么使用堆这种数据结构优先队列是一种很常用的队列,比如在游戏中,游戏角色在自动模式下,如何在周围一堆小怪中自动攻击某一个小怪?可能是判断这一群小怪哪一个比较近,就攻击哪一个,或者哪一个等级低,就攻击哪一个。总之,是会动态的计算周围小怪的优先级,然后攻击优先级最高的那一个小怪。堆 这一种数...

2019-02-23 18:35:01 481

原创 由归并排序和快速排序引申的思考

分治算法归并排序和快速排序都使用了分支算法的思想。分治算法:顾名思义,就是将原问题分割为同等结构的子问题,之后将子问题逐一解决后,在解决了各个小问题之后(各个击破之后)合并小问题的解,从而得到整个问题的解。归并排序:分的时候没有过多考虑,直接简单的一分为二,然后不断递归就可以了,但是在合的时候,就需要考虑怎么合在一起了。快速排序:费了较大的功夫去考虑怎么分为两部分的问题,我们写了parti...

2019-02-17 14:24:26 317

原创 八大排序算法--快速排序及其优化

快速排序定义高级排序在最后阶段较少数据排序是,都可以使用插入排序进行优化,因为越是高级的排序,实现越是复杂,通常来说在数据较大的效果越是明显,在数据较少时使用插入排序这一种简单排序更加快速。代码实现/** * 定义好脚标取值范围: * 对arr[l...r]部分进行快速排序,取值区间前闭后闭 */public static void quickSort(int[] arr, in...

2019-02-16 21:37:13 584

Adblock Plus免费插件

Adblock Plus免费插件, 还你一个干净的浏览器,自动拦截广告、不再受网页广告的视觉干扰

2019-10-06

计算机组成原理 精讲视频+课件+习题讲解视频

计算机组成原理 精讲视频+课件+习题讲解视频, 全视频讲解

2019-10-06

计算机操作系统 视频+考点精讲+课件

计算机操作系统 视频+考点精讲+课件, 内附链接,永久有效,有问题请私信,看到后及时回答。

2019-10-06

SQLiteExpertPro免费

SQLiteExpertPro,查看数据库的利器,开发必备,内附资料可以终身使用

2019-10-06

无用资源无用资源无用资源

计算机操作系统 视频+考点精讲+课件, 内附链接,永久有效,有问题请私信,看到后及时回答。

2019-10-06

Android AIDL示例代码.zip

Android AIDL示例代码, 包含了各种示例、解释等等,值得下载。

2019-06-02

Android学习资料

PDF文本阅读

2019-04-21

PDF文本阅读

PDF文本阅读

2019-04-21

AIDL示例代码

adil的代码示例,完全展示代码的具体操作, 值得拥有~~

2019-03-07

2016javascript+jquery学习文档

4天CSS视频资料

2018-09-09

3天HTML视频附加资料

3天HTML视频附加资料

2018-09-06

Java编程思想第四版完整中文高清版(带书签)

Java编程思想第四版完整中文高清版-带书签,可直接跳页

2018-08-19

现代操作系统第四版[中文版-有目录-高清]

现代操作系统第四版中文版,有目录,可以纵览全局,随意跳转页数

2018-08-19

工作总结PPT模板

工作总结PPT模板工作总结PPT模板工作总结PPT模板工作总结PPT模板

2018-07-01

loader的使用

android loader的使用android loader的使用android loader的使用android loader的使用

2018-06-11

传智播客web前端就业班

传智播客web前端就业班。下载链接都在文本里, 如果失效了,请私信我,会理解更新

2018-01-05

BAT大牛面试之解密Android

BAT大牛面试之解密Android 整套视频及代码;文本中是网盘地址和密码, 如果失效, 请私信我, 看到后立即发新地址

2018-01-05

算法与数据结构_(北大_张铭)

算法与数据结构_(北大_张铭)。资源网盘地址和密码都在文本中;如果地址失效, 请私信我,看到的第一时间会私信 新的链接

2018-01-05

深入理解Java虚拟机——JVM高级特性与最佳实践(第2版).pdf

深入理解Java虚拟机——JVM高级特性与最佳实践(第2版).pdf,完整,带书签, 完整版

2017-09-04

最新okio-1.13.0

最新okio-1.13.0

2017-08-18

最新okhttp3.8.1

最新的okhttp3.8.1

2017-08-18

MIS软件调查

MIS软件调查--金蝶KIS专业版——PPT汇报

2014-05-06

空空如也

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

TA关注的人

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