自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(67)
  • 资源 (31)
  • 收藏
  • 关注

原创 回顾 : 2018.03 -- 2019.07

2018.03-- 052018年的3月到5月之间,我认为是比较黑暗的一段时间。那时候,我的大学生涯已经开始接近尾声,因为我的学历一直是我的痛处,怎样面对未来社会的竞争?可能是因为受之前一个学长的影响吧,他当时就是先把学历升了一下,然后就直接面试的美团的大众点评,现在人家还在那上着班。当时临3月份的升学考试就还剩下3个月,都不到一百天了,但我还是想去冲一下,就这样,不顾一切的跑去了济...

2019-09-02 22:49:51 361 3

原创 Android Framework 之 SystemUI的启动流程

前面先说一下本文以Android O(8.0)代码为例。主要介绍从SystemService.java到启动SystemUI的过程,至于SystemUI的其他方面放至其他地方说啦。本文所涉及的类/frameworks/base/services/java/com/android/server/SystemServer.java/frameworks/base/packages...

2019-09-01 20:49:15 1897 1

原创 Java 关键字 之 final

概述final关键字算是与static都比较常用的一个关键字,它可以作用于属性、方法、参数和类。声明后,属性 -> 不可变;方法 -> 不可覆盖;形参 -> 不可变;类 -> 不可继承。Final属性(常量)在概述中已经提到,被final关键字修饰的属性是不可变的。在这个例子中我重新对str赋值,然后报了个语法错误,他说str不...

2019-08-28 00:18:08 211

原创 Java 关键字 之 static

概述本文围绕静态的变量、方法、代码块、导入展开,内部类先不做介绍,内部类需要单独出一篇去解释。静态方法静态方法最大的特点就是可以不依赖于任何对象就可以被进行访问,所以没有this方法。就像例子中有一个静态方法print2(),它在main方法中可以像普通方法一样直接被调用输出。public class StaticDemo { private static S...

2019-08-22 00:30:29 319

原创 Java虚拟机 之 内存分配

概述JVM的内存分配的原则有对象优先在Eden分配、大对象直接进入老年代、长期存活的对象进入老年代、空间分配担保、逃逸分析与栈上分配等。下面就一一详细介绍。对象优先在Eden分配关于这项策略,我们首先要先清楚的:Eden是属于新生代内存的一块区域。JVM打印GC详细信息的参数:-verbose:gc -XX:+PrintGCDetails选用...

2019-07-25 00:02:28 396

原创 Java 对象 的 生命周期 与 可达级别

对象的生命周期还好理解,就像是人的一生,从出生、少年、青年、中年、老年、死亡;关于对象,可达性可以理解为根据引用类型的不同而被分成了不同的可达等级。该篇只是对生命周期和可达级别做一个了解,目的是为了在以后读其他有关于JVM、对象、引用等类型的文章更容易理解。该篇与四种引用方式连接较为紧密。生命周期1. 创建阶段分配存储空间;构造对象;从超类对子类、对sta...

2019-07-11 00:19:09 384

原创 记录 VMware + Ubuntu14.4 + repo 的开发环境搭建

我下载的iso有980多M,我家网速有点慢,就先下载iso等待的时间搞点别的。1.下载Ubuntu 14.04打开下载地址:http://old-releases.ubuntu.com/releases/14.04.5/我下载64位的,选这个。竟然还有Mac版,好奢侈。2. 安装VMware从百度上一搜这个,很多下载的,下载完成后,一路确定。...

2019-07-10 00:10:01 1010

原创 Java 中的 强引用、软引用、弱引用 和 虚引用

引言Java中的强引用、软引用、弱引用和虚引用统称为Java四种引用方式。了解四种引用方式是用代码的方式去控制Java对象的生命周期,以达到节省资源等目的。强引用(StrongReference)强引用是最最普遍的一种引用了,也是最不容易被回收的一种对象。Object obj = new Object();只要这个对象还存在强引用,垃圾收集器就永远不会回收掉被引用的...

2019-07-09 23:55:17 533

原创 Android Framework 仿 WindowManager 添加系统服务

引言该demo为基于Android P(9.0)。根据原生WindowManager的调用方式,用AIDL跨进程通讯的方式实现。1. IWindowManager.aidl位置:/frameworks/base/core/java/android/os/IWindowManager.aidlpackage android.os;interface IWindowMa...

2019-06-16 00:36:37 571

原创 Java虚拟机 之 垃圾回收器

引言此篇是接着上一篇《垃圾回收算法》,也算是GC的下篇。上一篇将 如何判定对象为垃圾的两种算法 和 垃圾回收的四种算法整理完毕了。由于适用的场景不同,垃圾收集器也是多种多样,这一篇准备介绍常用的几种垃圾回收器。Serial 收集器1. 首先,Serial收集器是最基本的、发展最悠久的垃圾收集器。2. 它还是一个单线程垃圾收集器。假如有很多个线程正在运行,当需要垃圾回收的时...

2019-06-09 19:00:42 291

原创 Java虚拟机 之 垃圾收集算法

引言垃圾收集的学习的内容还算不少,放在一篇显得有点多,放两篇里感觉内容又都不算多,内容也无法界定成两部分,很纠结呐。但考虑到读两篇的感觉比一篇好的多,最起码是心理上,那就干脆分成两篇吧。此篇为垃圾收集的第一篇。如何判断对象为垃圾对象?1. 引用计数法引用计数器就是在对象中添加一个引用计数器,当有地方引用这个对象的时候,引用计数器的值就加1;当引用失效(对象被置为空)的时候...

2019-06-08 16:23:48 305

原创 Java 中 String、StringBuffer 和 StringBuilder 的区别与联系

引言 这题应该是最最经典的一轮必问了,三个亲兄弟问的多了,网上自然而然被整理的也很多。我觉得我自己也应该整理一篇,以加深自己的印象,不至于假如真的有哪一天被问到了,答不出个所以然来。String源码位置(Android O):/libcore/ojluni/src/main/java/java/lang/String.java1. String对象非基本数据类型,存储在堆中;...

2019-06-04 22:02:07 262

原创 Java虚拟机 之 对象

引言本篇主要围绕对象的创建、内存分配、结构、访问定位来说的,对有些规则不理解的可以先查看上篇JVM内存区域。对象的创建过程通过new创建的对象,这个对象就存储在堆中。具体步骤如下:如何给对象分配内存?分配内存有两种方式,分别是指针碰撞和空闲列表。1. 指针碰撞前提是假设内存是规整的,用过的内存放在一边,空闲的内存放在一边,而中间拿一个指针作为分界点指示器...

2019-06-02 01:00:25 286

原创 Java 中 == , equals 与 hashCode 的区别与联系

引言关于 “==”、equals 和 hashCode,有时候不知道应该用哪个,感觉很多结果都是一样的,甚至乱用。为了以后不至于写错都不知到怎么错的,做一个笔记。简述==:比较两者之间的关系,这个关系在基本数据类型和引用类型变量中的比较有所差异。equals:比较两对象的内容。hashCode:比较对象在hash表中的位置。"=="1. 在基本数据类型(...

2019-05-30 01:02:13 559

原创 Java虚拟机 之 内存区域

引言上一篇介绍了JVM的发展史,那只是简单的看了JVM,只是知道有这么一个东西,是干什么用的;从这一篇到未来,将一点点慢慢了解它,为的是为以后的学习打下基础和浇灭面试官的狂气 :)。简介下面是我画的一个草图,可以表示出大致的结构图,但不是详细的。那我们平时所说的堆内存和栈内存到底是什么呢?堆内存:就是指的Java堆;栈内存:虚拟机栈中的局部变量表。线程独...

2019-05-27 23:25:27 262

原创 Java虚拟机 之 虚拟机发展史

在1991年4月,由James Gosling领导的一项以能够在各种消费性电子产品上运行的程序架构为目的的计划开始启动,此项计划的产品为Oak。1995年5月23日,Oak语言改名Java,并在SunWorld大会发布,并提出了“Write Once,Run Anywhere”的口号。从此拉开了Java的序幕……下面将大致介绍几款Java虚拟机,仅作了解,为将来的学习做一些铺垫。...

2019-05-15 00:10:33 369 1

原创 Java 设计模式 之 单例模式

简述单例模式应该算是最简单的、代码量最少的模式了。单例模式,英译“独生子”,其目的就是保证该对象在此应用中的唯一性。目的在简述中说的对象的唯一性可能还有些模糊,而如果一个对象在应用中使用次数非常多,在每一次的使用中,该对象被一次又一次地创建,这样是完全没有必要的操作,因为既浪费了资源,又增大了系统的开销。单例模式的存在,正是解决这样的困惑。大致流程1. 私有...

2019-05-10 00:10:23 206

原创 Java 构造方法

1. 什么是构造方法public class Son { private String name; private int age; Son(String name,int age){ this.name = name; this.age = age; }}上面的用法并不少见,他就是平时所述的构造函数(方法)。...

2019-04-11 20:49:11 842

原创 TCP/IP IP 协议 及 选路

1. IP 介绍1. IP是TCP/IP协议族中最核心的一个协议。比如说分用(https://blog.csdn.net/yichen97/article/details/87950880)中的作用。2. IP的特点:IP提供不可靠、无连接的数据报传送服务。不可靠。IP有可能丢包,他不能保证IP数据报能成功到达目的地,丢了之后,通过ICMP协议将“为什么丢包?网络上发生了什么事件...

2019-03-31 18:30:32 985

原创 TCP/IP 分层 封装 分用 端口号 以太网 环回口 MTU

1. 概述在开始之前先了解下两个概念,定义来自于《TCP/IP详解》。协议族:一系列相关协议的集合。参考模型:制定一个协议组中的各种协议之间的相互关系并划分需要完成的任务的设计。TCP/IP是一个实现Intent体系结构的协议族。2. 分层TCP/IP在OSI模型中是有七层的,但是由于表示层和会话层很少有人用到,所以又出现了TCP/IP的四层模型。四层模型相比于七...

2019-03-18 00:27:35 1704

原创 Android TV 平台 新添按键 与 GlobalKey

新添按键关于Android TV,Android平台按键的配置大致可分为以下几步(以Settings为例):1. 检查驱动在添加按键之前,要先检查一下驱动层是否配置成功。可以抓一份遥控器按下Settings按键的打印,查看有没有code产生;或者直接去问驱动的同事添没添就好了。:)2.Vendor_XXX_Product_XXX.kl这个文件名对于不同的代...

2019-02-25 23:34:24 1389

原创 Android 四大组件 BroadcastReceiver

1. Broadcast简介Broadcast用到的场景是非常多的,比如说实现在同一个App内的通信;或者不同App之间的通信;还有在特定情况下的通信(开机需要给更新App的提示等)。Broadcast的角色主要有一个广播发送者,和需要接受到消息的广播接收者。广播发送者先将广播发送出去,然后由广播接收者进行接收,收到广播后,就可以在广播接收器中做一些操作了。值得注意的是广播接收器...

2019-02-15 12:03:18 372

原创 Android 四大组件 Service

1. 适用范围Service主要使用在后台比较耗时和运行时间较长的逻辑。但是在service中使用 Thread.currentThread().getId() 获取得到的却是1,也就是主线程。如果想要在服务里执行耗时的逻辑,也需要创建一个子线程,否则也会阻塞线程。2. 生命周期左图是startService()所创建;右图是bindService()所创建。...

2019-01-21 14:51:02 216

原创 Android 四大组件Activity

1. Activity状态转换2. Activity生命周期3. Activity栈4. 启动另一个ActivityIntent intent =new Intent(FirstActivity.this,OtherActivity.class); startActivity(intent);5. Activity之间通信bun...

2018-12-24 20:47:28 231

原创 Java 线程 初识

说完这个线程,java部分就要结束了,就开始真正的Android路程就开始了,下一篇文章是Android的四大组件讲解。1. 在学习线程之前需要知道的几个概念多线程:一个进程运行时产生了多个线程,目的是为了节约CPU资源。并发:是指能处理多个同时性活动的能力,并发事件之间不一定要同一时刻发生。并行:同时发生两个并发事件。线程安全:在并发的情况下,该代码经过多线程使用,...

2018-12-17 16:34:39 364

原创 Java 回调机制 初识

之前我对回调机制很不理解,回调机制是什么?它有什么用?怎样使用回调机制?看了这篇文章,肯定会明白的。1. 回调机制是什么?它有什么用?回调机制大体意思就是:借助一个接口,A发送一条消息给B,就去做别的事情了;然后B忙完手上的活,给A回复了一条消息。2. 回调机制的具体实现流程首先,要先定义一个接口。public interface CallBackInterfac...

2018-12-14 15:01:05 266

原创 Java 各类集合的对比

1.集合就是一个放数据的容器,准确的说是放数据对象引用的容器。2.常用集合:Collection:是一个接口。1List:元素有序、可重复、并引入位置下标。 1.1LinkedList:底层是双向循环链表。增删快、查询慢、线程不安全、效率高。 1.2ArrayList:底层数据结构是数组。查询快、增删慢、线程不安全、效率高。 1.3Vecto...

2018-12-13 21:30:27 557

修改app的图标及应用名

该资源只有修改app的图标和名字的功能,代码简单明了,通俗易懂。

2018-08-10

Service向Activity传值(java)

Service向Activity传值,实现Count累加的效果。定时传值

2018-08-29

Binner轮播图(Kotlin)

此资源是Binner轮播图,可应用于广告位,类似于淘宝主页轮播。此资源用kotlin写的,我还有java版本在我的下载资源中。

2018-08-10

Activity绑定Service(Kotlin)

Activity开启,绑定,解绑,关闭Service。Kotlin版本。适合初学者

2018-08-23

Service通过广播向多个Activity传值

Service通过广播向Activity传值,也可以多个Activity接收

2018-10-15

VLCMediaPlayerDemo

VLC播放器的demo,里面包括so库,解压即用,不需要其他操作,代码简单明了,没有多余的功能混淆视听。

2018-08-08

IP地址输入框

IP地址的输入框,把整个IP地址分成四部分,输完一个,焦点自动对齐下一部分。

2018-08-27

ExoDemo功能齐全

EXOPlayer播放器demo,播放暂停,进度条,全屏,快进快退,亮度音量等一系列功能

2018-09-13

JiaoZiVideoPlayer

饺子播放器,又称节操播放器,该资源是官方的播放器demo。

2018-08-11

SocketioDemo(Kotlin)

一个用socketio实现长连接的demo,与官方的demo相比,该代码显得不这么多,杂。更适合Socketio初学者。kotlin编写

2018-08-27

简单自定义Toast

包括普通Toast,自定义的图片Toast,自定义位置的Toast

2018-08-25

IP地址输入框(Kotlin,Dialog)

用Activity写的Dialog,使用方便,ip四位输入框,ui还漂亮

2018-08-28

简单广播收发demo

简单的广播收发demo,适合初学者,简单清晰明了。自定义

2018-11-19

Service向Activity传值(kotlin)

Service向Activity传值,实现Count累加的效果。定时传值

2018-08-29

Binner轮播图(Java)

此资源是Binner轮播图,可应用于广告位,类似于淘宝主页轮播。此资源用java写的,我还有kotlin版本在我的下载资源中。

2018-08-10

挺好看的Studio主题

好看的AndroidStudio主题,设置 Primary font:Consolas,Size:6,Line spacing 0.8 效果更佳

2018-08-11

WindowManager弹窗

在App里的Demo2实现,使用WindowManager在Service实现

2018-11-16

ExoPlayer的kotlin例子

该资源为ExoPlayer的demo,基本功能都有,kotlin编写。

2018-08-11

定时任务和动态广播

此资源中有利用Handle实现计时,Android自带的计时,动态广播使用。注释起开就能用

2018-11-08

计算网速工具类

调用: private val mHnadler = object : Handler() { override fun handleMessage(msg: Message) { when (msg.what) { 100 -> { transmission = msg.obj.toString() Log.e("transmissionaa",msg.obj.toString()) } } super.handleMessage(msg) } } private fun initSpeed() { //获取当前网速 NetWorkSpeedUtil(this, mHnadler).startShowNetSpeed() }

2018-08-24

SocketioDemo

一个用socketio实现长连接的demo,与官方的demo相比,该代码显得不这么多,杂。更适合Socketio初学者。

2018-08-15

VLC播放器demo

VLC播放器demo,有倍速播放,播放暂停,进度条,全屏,网络判断等一系列功能

2018-09-07

RecycleView

该资源可以有添加,删除数据,并且有ListView,GridView任意切换的模式,是一个很好的demo,对于了解RecycleView,使用Kotlin编写。

2018-08-11

开机自动启动应用

这利用广播,接收到开机,然后意图传递到第一个页面,从而达到开机自动启动应用的效果,注意权限全都加上。

2018-08-13

FlexBoxLayout流式布局

这是一个完整的FlexBoxLayout,如果加载数据直接改掉数据源就可以,方便简单。

2018-08-11

重写CountDownTimer

重写CountDownTimer类,增加设置总时间和设置时间间隔功能。

2018-12-06

DensityUtil

用来各种尺寸单位转换的Util工具类,主要有dp,sp,px之间的相互转换,使用非常方便。

2018-08-07

ExoPlayerDemo

这是一个ExoPlayer的小栗子,简单实用,完全能满足点播系统的需求。

2018-08-11

国内手机厂商设置跳转工具类

国内手机厂商设置跳转工具类,包括samsung,huawei,xiaomi,vivo,oppo,360,meizu,oneplus

2018-08-10

Activity绑定Service

Activity开启,关闭,绑定,解绑Service。代码清晰,适合初学者

2018-08-23

CallBack回调

这个资源解决了我很长时间不理解回调是什么,怎么用。

2018-12-13

空空如也

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

TA关注的人

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