自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

李岳锋的专栏

0 warnings, 0 errors

原创 红黑树的时间复杂度分析

一、红黑树的基本属性。 红黑树的每个结点,要么是黑色,要么是红色,不可能是黄色或其它颜色。 根结点(root)一定是黑色,简称为黑头。 所有红色结点不可以直接相邻。 也即是,如果一个结点为红色,那么,它的爸爸或儿子,一定就是黑色,不可是红色。符合,绿帽定律。 所有空结点,都是黑色。所谓的空结点,...

2020-04-23 11:26:29 144 0

原创 Java Skeletal Implementation/Abstract Interfaces(骨架实现/抽象接口)

注:skeletal implementation,下文,全部简称SI。 一、接口与抽象类的优劣。 接口,可以实现多继承,但抽象类不行。 抽象类,可以有实现,但接口不行。 我们先一步一步来,先举一个,用接口的例子,再通过分析例子,一步一步进行讲解。 二、使用接口,规范相同行为。 假设...

2018-07-03 20:26:01 404 2

原创 Android 内存优化策略

本篇博客,主要向你说明,以下两个问题: 为什么要内存优化? 如何进行内存优化(方法有哪些)? 一、为什么要内存优化? 因为Android平台和Java语言本身的某些特性的缘故,在开发过程中,如果不注意这些特性。可能会导致内存消耗,比其它平台(IOS)和开发语言(C/C...

2018-07-02 19:15:31 795 0

原创 Windows下配置MySQL(5.7.21)数据库

大好的周末,本该是打机、出游、睡觉的好时机。撸主,却在这里写博客… … 吊丝,注孤老。不管怎么样,希望,这篇文章,能帮到你。 一、下载MySQL。 我下的是mysql-5.7.21-winx64。这是MySQL的下载地址:https://dev.mysql.com/downloads/mysq...

2018-03-25 17:57:18 8915 2

原创 Android 如何运用MVP模式开发(以封装Login模块为例)

前言: 本文将会,向你介绍如何在android开发中运用MVP模式,来解藕并提高代码的复用。现在,如果不采用个什么模式来开发,就像当年不染个五彩缤纷的杀玛特头发一样,显得与时代格格不入。虽然以前没有染发加入杀玛一族,导致追悔莫及。但是,这次得把握住机会,紧追时代潮流,加入MVP模式开发一族(MV...

2018-03-01 15:01:51 580 2

原创 对RxJava2理解的总结

前言: 如果你在看过诸多RxJava2相关的文章,仍然对RxJava2没有一个整体的认识的话,可以看一下这篇文章。全篇,以问答的形式,由简入繁,一步步带你认识RxJava2。如果你还没有学过RxJava2,那可以参考这篇 :RxJava 2.x 入门教程 1、什么是RxJava2? 答:Rx...

2018-02-28 17:59:45 2193 0

原创 Android 如何封装网络框架(以封装OkHttp为例)

前言: 现在,在网络方面,安卓主流是采用Retrofit + RxJava2的组合。但是,天天用别人封好的东西,总不是办法。就好像天天去大宝健,总不如找个漂亮的女朋友好(有人说,有漂亮的女友,谁还去大宝健。。那就太年轻了,妻不如妾,妾不如妓,妓不如偷,偷不如偷不着)。虽然自己水平有限,但做人如果...

2018-02-27 16:28:32 717 2

原创 Android Room DataBase(一)

前言: 众所周知,安卓原生的Sqlite数据库的操作不仅冗余麻烦,而且操作过程容易出问题。所以,后续github上出现了许多开源的封装了Sqlite的第三方library,来帮助你简化操作数据库,摆脱Sqlite的魔掌。比如,举世闻名的GreenDao。又比如,白痴化不需写Sql语句的Realm...

2018-02-22 14:20:10 4749 0

转载 platform-tools\adb.exe,start-server' failed -- run manually if necessary,adb启动失败,端口被占用

转载自:http://blog.sina.com.cn/s/blog_8fd5421d0101dnlg.html 经常遇到 Please ensure that adb is correctly located at 'D:\java\sdk\platform-tools\adb.ex...

2016-05-11 11:55:08 17020 2

原创 Android如何使用Camera2拍照【简易快速上手篇】

因为大部分的需求,并没有那么复杂,只需要简单的拍照功能,对于这种简单的需求,本文可以很好的满足。本文,是对Camera2做一个极简易的封装,以及去掉其它不重要的API,帮助你在几分钟内,使用Camera2实现拍照功能。其实就是,直接复制粘贴就可以运行了。有什么问题,可以留下评论。 MainAct...

2020-04-22 14:26:18 71 0

原创 Android 四大组件之Broadcast【一】

一,什么是广播? 广播, 做为Android的四大组件之一,被用于发送和接收,来自系统或其它app的消息。其设计原理,是基于观察者模式来设计的,即先订阅,后接收。广播消息,并不受限于某一个单一进程。因此,它可以用于跨进程间的通信,在多个App之间传递消息。 二,广播的分类。 根据广播的订阅(定义)...

2020-04-17 11:37:51 74 0

原创 couldn't find "libc++_shared.so"

Android 项目,运行时遇到这个问题时,删除build文件夹,然后Rebuild项目就行了。

2020-04-07 15:58:29 184 0

原创 Github login 一直弹(AndroidStudio)

最近,在Github上又创建了一个分支,在push时,老是弹这个login弹窗,配置了AndroidStuiod里面的github账号也没用。后来,根据这篇博文,解决了这个问题。 打开git bash客户端,进入用户目录(一般为C:\users\yourUserName),执行以下命令,注意要带上...

2020-03-25 17:38:06 136 0

原创 浅析SparseArray的源码实现

Preface: 【SparryArray 缩写成 SA】在我们学习一个新技术,新东西之前,我们往往会先考虑到,它是什么?为什么要学它?它有什么优点和缺点?它是如何实现这些优点的?又为什么会有这些缺点?通过了解这些问题,我们才能做出合理的判断,来决定是否要学它,用它,以及何时,何地来用它。这篇博客...

2020-03-17 18:12:27 152 0

原创 Let's talk about the relationship of Androidx, Support, Jetpack.

You may heard AndroidX, Support, Jetpack, but do you know what is the differ between them? Okay, Let me walk you through this topic. First of all, Su...

2020-01-21 16:17:58 51 0

原创 Right click doesn't work on touchpad of laptop with Ubuntu 18.04 or above.

Note: as my ubuntu system doesn’t install a Chinese input software so that it’s written in English, translate it if you can’t read. You may encoutere...

2020-01-21 10:56:07 61 0

原创 Bat 等待一段指定的时间

以下代码,直接放在.bat文件中执行,就可以指定停留30秒。 timeout /t 30 如果不想被中断,除非关闭程序或按ctrl+c,就加这个指令 /nobreak。 timeout /t 30 /nobreak 如果还不想看到倒计时效果,就再加这个指令 > NUL timeout /...

2019-12-06 10:04:50 467 0

原创 Tcp and Three-Way handshake

一、The TCP Protocol TCP is a protocol which belongs to the Transfer Layer of the four protocol layers. UDP is another protocol belongs to Transfer Lay...

2019-11-28 17:19:15 94 2

原创 Git通过命令忽略指定文件

进入要忽略的文件的所在目录,点击鼠标右键,选择Git Bash Here,如图所示。 以下命令,是忽略指定文件 git update-index --assume-unchanged test.txt 以下命令,是取消忽略指定文件 git update-index --no-assume-un...

2019-09-26 14:52:47 230 0

原创 编译方舟编译器源码教程

前言:本博客主要是对华为开源平台的官方编译文档,进一步的做详细的解释,以及在编译时可能会到的问题的解决。现在,先把编译成功的流程放出来,后续再对各个工具和术语,以及如何使用编译出来的编译器,做进一步的解释。 一、克隆方舟编译器源码到本地 1、仓库地址:https://code.opensource...

2019-09-03 14:06:50 1947 4

原创 Kotlin需要注意的知识点

1、当扩展函数与重载操作符函数或、成员函数有相同签名时。编译器不会报错,但是扩展函数会被忽略掉,不会被调用,只调用重载操作符函数或成员函数。 2、重载操作符函数与成员函数有相同签名时,编译器会报错,简而言之,重载操作符函数,只是成员函数的一种类型,是约定格式的函数。 ...

2019-08-13 11:53:39 60 0

原创 A trick about not-null type in kotln

Note: 原创,非翻译。 What is “A trick about not-null type in Kotlin?” The trick is that: "not-null type isn’t always being not-null at complie time.&qu...

2019-08-12 16:45:35 71 0

原创 HashMap的实现原理(下)

前言:基于上篇《从源码角度分析HashMap的实现原理(上)》,我们学会了为什么需要HashMap,什么是HashMap,以及HashMap的基本实现原理。这篇,将继续讲解,什么是Hash冲突和其解决方法。 ...

2019-08-06 10:22:16 44 0

原创 HashMap的实现原理(上)

预备知识: 一、数组的优劣: 1、优势: 已知下标的情况下,查找某条数据,速度快。时间复杂度为O(1),即不管你数组有多长,我都很快。(看似是优势,但对男人来说,快却是劣势) 2、劣势: 不知下标,并且数组没有排序的情况下,查找某条数据,只能遍历整个数组。在最倒霉的情况下,时间复杂度为O(n),...

2019-06-25 17:47:09 116 0

原创 Windows下通过adb获取手机当前运行的Activity的名字。

最近在做一个功能,但不知道竞品的实现方式是用两个Activity来实现,还是一个Activity多个Fragment实现。。。因为两个Activity实现,遇到技术难点,所以,我就猜测,他们是用多个Fragment来实现。为了证实这个猜想,我通过adb的方式来实现查询。 一、进入Android S...

2019-05-28 10:06:02 451 0

原创 How to compile ss for android on Ubuntu 18.04.2 LTS.

一、Introduction In this article, I assume you have learned both How to create a regular app and How to install Ubuntu system(Arbitrary version but it’...

2019-04-10 09:20:10 164 0

原创 解决华为推送通知栏点击事件onEvent方法不回调的问题

全世界最坑的就是华为推送的SDK,不管你信不信,反正,我是信了! 请注意,在确认照官方文档配置无误后,仍然收不到onEvent回调的,请看这里: 这里有两个Receiver(官方文档只有一个,另一个没有给名字,说什么不建议,但不建议,onPushMsg又不会调用,真是狗血!)。 第一个用于接...

2019-04-09 17:24:27 3292 9

原创 安卓如何提高打开一个复杂的UI界面的速度?

对于个别UI界面,极其复杂,光是inflate就要消耗上100+毫秒的页面,我们是无法接受并容忍的。那么,解决办法有哪些呢?如何,提高打开速度并优化用户体检呢? 一、尽可能的减少布局的层次嵌套,优先使用约束布局。 二、如果无法减少布局的层次嵌套,哪怕用约束,还是得有三、四层怎么办?而且,里面的所有...

2019-04-02 14:14:45 157 0

原创 Diary for 02/22/2019 as a programmer

It’s been a long time sicne I wrote a diary, I don’t know why I’m so hunger for a dairy now. It looks something wants to move out of my head. It seem...

2019-02-22 22:21:40 112 0

原创 Unable to resolve dependency for ':app@debug/compileClasspath': Could not resolve 'module name'

当你的主app的Module有配置多个buildTypes时,所有被app所引用的Module,以及Module之间,都要添加一样的buildTypes。 比如,我的项目的app有release、debug、realDebug,三个。那么我的其它Module都要添加这个东西。 buildTyp...

2019-01-28 13:46:56 427 1

原创 仿微信新版沉浸式效果,解决状态栏蒙灰,遮罩问题。

代码为Kotlin,但不影响Java开发者阅读。 isLight参数,如果为true,就将状态栏的图标和文本设置成黑色。 为false, 就变成白色。 class SystemUtil { companion object { /** * @param...

2019-01-15 14:22:32 781 0

原创 Android Studio 每次修改xml后,都要rebuild project才生效

最近入职到另一家新公司,接手了一个项目。可是这个项目很狗血,每次修改xml的内容,都必须要rebuild project一次,才生效。哪怕你只改了一个textSize或者textColor,这就很烦了。 在忙完了入职前的一波需求后,今天花了大半天的时间,琢磨了一下整个项目,特别是gradle的配...

2018-10-12 14:41:34 5715 4

原创 Android Studio git添加.gitignore文件无效

在添加.gitignore文件后,Android Studio 如果没有忽略我们想要忽略的文件,解决方法就是清除一下缓存。 原因gitignore对已经追踪的文件无效,清除缓存后就可以了。还不行,就从git上重新拉取代码。 注意点cached和add后面,需要空格和一个 . git rm -r -...

2018-10-11 18:59:24 1571 1

原创 Windows10 无法安装.net framework.(产生阻滞的问题)

https://jingyan.baidu.com/article/e52e36151538d840c70c515a.html 完成2、3、7,三个步骤,即可。然后,就可以重新顺利的安装.net framework。

2018-09-29 10:13:00 21591 1

原创 Android Studio 导入aar报红(报错),引用不到,但可以编译运行。

昨天遇到一个比较狗血的问题,应该是AS的一个潜在BUG。我从git拉下的新项目,可以正常编译和运行,但是引用到aar部分的代码,却报红,提示找不到对应的类。。。折腾了半天,后来,修改一下aar对应的module的名字,然后sync now一下(这个时候就已经好了,但为了不影响现有代码的命名,还需要...

2018-09-29 09:33:40 1734 0

原创 error in locking authority file /root/.Xauthority

今天在Ubuntu下编译Shadowsocks的源码,太卡了,导致ubuntu退出图形模式(graphic model)。 这个问题,重启就好。重命命令如下:如果没权限,就sudo rebbot。有权限就reboot。...

2018-06-23 10:46:24 6896 0

原创 Android 实现防抖动(防快速点击)的最优雅做法

前言: 对于很多安卓开发者来说,防快速点击的实现,并不是一件难事。难的是,如何优雅的实现。现在,主流的做法,有自己在onClick方法的顶部加时间判断。也有通过,第三方注解框架去解决。但是,如果你既不想在onClick里面加,又不想用第三方框架,又想以最少的改动,来实现,咋办?干大事的人,都是直...

2018-05-05 11:29:34 6308 6

原创 android 颜色码详解

前言: 最近在群里面,经常能遇到一些同学在问,关于颜色码的问题。比如,为什么颜色码是一串字母? 又为什么,有时候是#+6个字母,有时候是#+8个字母。又或者#50FFFFFF,这样怎么不是透明呢?… … 每次都帮大伙回答,总是显得没效率。趁今天,已经把需求做完。赶紧写一篇文章。 一、颜色...

2018-04-12 16:41:28 277 0

原创 Android 手势拦截的实现(简化水平、垂直手势操作的拦截处理)

这是手势拦截类的源码。注释,也加的随地时,方便阅读理解。在源码后面,会有使用案例。 package com.laka.robotdog.widget; import android.content.Context; import android.view.MotionEvent; impo...

2018-03-26 15:07:38 906 0

原创 (编译安卓内核并运行在模拟器上)How do you compile android kernel(goldfish) and let it run on emulator?

前言:这是14年,刚出来实习的时候,学的。文章放在QQ空间,但QQ空间现在已经莫落了,把文章转发在这里。 官方指导步骤:http://source.android.com/source/building-kernels.html,中国特色互联网下及内核的编译步骤及方法(2014/04/16): ...

2018-03-24 22:34:34 290 0

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