7 岳锋

尚未进行身份认证

Remove your code If it's not necessary. Do your best to simplify and optimize your code. This is the first step to the top of programming career.

等级
TA的排名 3w+

编译方舟编译器源码教程

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

2019-09-03 14:06:50

Kotlin需要注意的知识点

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

2019-08-13 11:53:39

A trick about not-null type in kotln

Note:原创,非翻译。Whatis“Atrickaboutnot-nulltypeinKotlin?”Thetrickisthat:"not-nulltypeisn’talwaysbeingnot-nullatcomplietime."Aswellknown,anot-nulltypecan’tbeassignedwitha...

2019-08-12 16:45:35

HashMap的实现原理(下)

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

2019-08-06 10:22:16

HashMap的实现原理(上)

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

2019-06-25 17:47:09

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

最近在做一个功能,但不知道竞品的实现方式是用两个Activity来实现,还是一个Activity多个Fragment实现。。。因为两个Activity实现,遇到技术难点,所以,我就猜测,他们是用多个Fragment来实现。为了证实这个猜想,我通过adb的方式来实现查询。一、进入AndroidSDK目录下的platform-tools的目录下,按住shift+鼠标右键,打开cmd窗口。二、进入...

2019-05-28 10:06:02

How to compile ss for android on Ubuntu 18.04.2 LTS.

一、IntroductionInthisarticle,IassumeyouhavelearnedbothHowtocreatearegularappandHowtoinstallUbuntusystem(Arbitraryversionbutit’sbettertoknowabout18.04.2LTSasthispostbas...

2019-04-10 09:20:10

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

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

2019-04-09 17:24:27

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

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

2019-04-02 14:14:45

Diary for 02/22/2019 as a programmer

It’sbeenalongtimesicneIwroteadiary,Idon’tknowwhyI’msohungerforadairynow.Itlookssomethingwantstomoveoutofmyhead.Itseemsonlytowriteitdowncanmakemecomfortable.we...

2019-02-22 22:21:40

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都要添加这个东西。buildTypes{release{//signingConfi...

2019-01-28 13:46:56

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

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

2019-01-15 14:22:32

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

最近入职到另一家新公司,接手了一个项目。可是这个项目很狗血,每次修改xml的内容,都必须要rebuildproject一次,才生效。哪怕你只改了一个textSize或者textColor,这就很烦了。在忙完了入职前的一波需求后,今天花了大半天的时间,琢磨了一下整个项目,特别是gradle的配置,在用排除法,一步步排除,并在StackOverFlow的一位大神的帮助下,成功解决了这个问题。首先...

2018-10-12 14:41:34

Android Studio git添加.gitignore文件无效

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

2018-10-11 18:59:24

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

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

2018-09-29 10:13:00

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

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

2018-09-29 09:33:40

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

注:skeletalimplementation,下文,全部简称SI。一、接口与抽象类的优劣。接口,可以实现多继承,但抽象类不行。抽象类,可以有实现,但接口不行。我们先一步一步来,先举一个,用接口的例子,再通过分析例子,一步一步进行讲解。二、使用接口,规范相同行为。假设,我们要做一个苹果自动贩卖机(自动贩卖机简称贩卖机)和葡萄贩卖机。那么,良好的代码设计,肯定不是一上来...

2018-07-03 20:26:01

Android 内存优化策略

本篇博客,主要向你说明,以下两个问题:为什么要内存优化?如何进行内存优化(方法有哪些)?一、为什么要内存优化?因为Android平台和Java语言本身的某些特性的缘故,在开发过程中,如果不注意这些特性。可能会导致内存消耗,比其它平台(IOS)和开发语言(C/C++)多得多。所以,我们需要最大化的去避免,额外的内存开销和泄露。所以,通过了解这些特性,并合理的组织你的代码,来减少A...

2018-07-02 19:15:31

error in locking authority file /root/.Xauthority

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

2018-06-23 10:46:24

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

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

2018-05-05 11:29:34

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。