自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

学如不及,犹恐失之

Reading The Fuck Source Code 。。。

原创 Mac上搭建Flutter开发环境(Android模拟器和IOS模拟器开发)

前言最近公司要求使用跨平台语言开发新的应用,这几天也对比了ReactNative和Flutter,最终决定入坑Flutter,今天刚配置完Flutter的开发环境,Flutter中文网也有相应的安装开发环境的介绍,这里主要是站在一个Android开发者的角度详细的记录在MAC电脑上配置的步骤和遇到的坑;达到的目的这篇博客的目的很简单,搭载可运行在Android模拟器和IOS模拟器的环境,看大...

2019-04-09 00:17:35 5825 3

原创 Linux系统上Gitlab安装、汉化和邮箱配置笔记

简介GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务,可通过Web界面进行访问公开的或者私人项目。环境要求内存:2G以上安装步骤1、配置yum源vim /etc/yum.repos.d/gitlab-ce.repo添加以下内容[gitlab-ce]name=gitlab-cebaseurl=http://mirror...

2019-03-27 14:34:19 292

原创 Java 集合全面整理

概述在实际开发中,我们经常会对一组相同类型的数据进行统一的管理操作,到目前为止,我们可以使用的数组结构,链表结构,二叉树结构来实现;数组的最大问题在于数组中的元素个数是固定的,要实现动态数组,毕竟还是比较麻烦,自己实现链表或者二叉树结构来管理对象更是不方便;在JDK1.2版本后,JAVA完整的提供了类集合的概念,封装了一组强大的、非常方便的集合框架API,让我们在开发中大大的提高了效率;...

2018-11-21 22:40:12 206

原创 Android内存泄漏全面总结

概述内存泄漏伴随着整个APP的开发过程,一个对象内存泄漏可能你不会在意,但是一个对象反复内存泄漏或者多个对象同时内存泄漏,将导致你的APP内存直线上升,严重的还会导致OOM直接crash,所以我们在开发中应该及时发现内存泄漏并且修复它是非常必要的,今天我们在总结一下各种内存泄漏的场景和修复方案。什么是内存泄漏?内存泄漏(Memory Leak)是指程序中己动态分配的堆内存由于某种原因程序...

2018-11-12 23:00:16 91

原创 LeakCanary原理分析

概述在上一篇LeakCanary使用详细教程中,我们熟悉了LeakCanary的使用和初步描述了它的工作机制,这篇我准备从源码的角度去分析LeakCanary的工作原理;源码分析从上一篇中我们知道,LeakCanary在Appaction的初始化方式:@Overridepublic void onCreate() { super.onCreate(); if (LeakC...

2018-11-03 21:38:04 1134

原创 Android面试总结--Android篇

Activity生命周期图中需要注意一下几点:1.Activity实例是由系统自动创建,并在不同的状态期间回调相应的方法。一个最简单的完整的Activity生命周期会按照如下顺序回调:onCreate -> onStart -> onResume -> onPause -> onStop -> onDestroy。称之为entire lifetime。2.当执...

2018-10-10 10:45:24 361

原创 Android面试总结 -- Java篇

Object类的equal和hashCode方法重写,为什么?首先equals与hashcode间的关系是这样的:1、如果两个对象相同(即用equals比较返回true),那么它们的hashCode值一定要相同;2、如果两个对象的hashCode相同,它们并不一定相同(即用equals比较返回false)由于为了提高程序的效率才实现了hashcode方法,先进行hashcode的比较,如果...

2018-10-10 10:42:55 273

原创 LeakCanary使用详细教程(附Demo)

导语 在Android的性能优化中,内存优化是必不可少的点,而内存优化最重要的一点就是解决内存泄漏的问题,在Android的内存泄漏分析工具也不少,比如PC端的有:AndroidStudio自带的Android Profiler、MAT等工具;手机端也有,就是我们今天要介绍的LeakCanaryLeakCanary简介LeakCanary是Square公司为Android开发者提...

2018-09-05 17:55:27 10703 3

原创 论23种设计模式在Android源码中的应用--单例模式

概念单例模式就是整个系统有且只有一个唯一的对象,单例模式思想相对比较简单,但是确保整个系统有且只有一个对象,需要注意几个点: - 构造函数必须是private; - 通过一个静态方法返回单例类对象; - 在多线程下注意单例模式的创建; - 确保单例类对象在反系列化时不会重新构建对象;单例模式从实现角度来分可以分:饿汉式单例和懒汉式单例,先看一下它们的实现:...

2018-07-31 23:38:28 240

原创 Sonar使用完整图文教程(Ubantu服务器、AndroidStudio工程)

在这一篇我们主要介绍Sonar的使用方式,如果你还没有安装Sonar的话,可以看一下上一篇内容Sonar的安装配置教程,详细的介绍了Sonar服务的安装配置步骤以及提供了所需的所有安装包;如果已经安装好了Sonar服务就可以开始使用Sonar检测我们的代码了,先来温习一下什么是Sonar什么是Sonar?Sonar是一个用于代码质量管理的开源平台,用于管理代码的质量,通过插件形式可...

2018-07-24 23:37:49 5477

原创 Sonar在Windows下的安装配置(图文 附安装包)

Sonar是什么?Sonar是一个用于代码质量管理的开源平台,用于管理代码的质量,通过插件形式可以支持二十几种语言的代码质量检测,通过多个维度的检查了快速定位代码中潜在的或者明显的错误;SonarQube与SonarSonarQube是sonar的服务端,相当于一个web服务器中的tomcat,用来发布应用,在线浏览分析等,最新的版本是7.2.1;安装和配置JDK(基...

2018-07-22 23:39:11 8116 12

原创 论23种设计模式在Android源码中的应用--面向对象六大基本原则

单一职责原则单一职责原则(Single Responsibility Principle 缩写:SRP)定义:就一个类而言,应该仅有一个引起它变化的原因。听起来也许很抽象,简单的说就是:一个类(方法)不能担任太多的职责,因为过多的职责意味着复用的可能就越小、职责耦合就越高,当一个职责变化时,可能会影响到其他的职责功能,所以应该把职责进行隔离,将不同的职责封装到不同的类(方法)...

2018-07-21 22:23:06 81

原创 论23种设计模式在Android源码中的应用--概述篇

前言当你求职面试的时候是否有这样当经历,面试官问你:你在项目使用过的设计模式有哪些?说说xx模式在你项目中的使用?说说xx模式的实现原理是什么?说说xx模式在Android源码中的体现?等等,诸如此类的问题,你是否都能一一答出呢?如果你没有答好说明你对设计模式可能理解还不够深刻,或者使用还不够熟练 ,如果是这样的话,让我们一起共同学习一下设计模式吧,在准备写一些关于设计模...

2018-07-18 23:21:49 429 2

原创 Android跨进程通信AIDL详解(附源码)

概述AIDL:Android Interface Definition Language,即Android接口定义语言,记住,它是一门语言,设计它的目的就是为了实现跨进程通信,我们知道Android的每一个进程都运行在独立的内存中,进程之间代码是不能愉快的调用的,但是在我们开发中难免会有一些场景是需要实时进行进程间方法调用和数据传递。AIDL支持的数据类型JAVA的基本数据类型(...

2018-06-09 17:17:14 311 1

原创 Kotlin学习之路--代理模式

首先我们先来了解一下什么是代理张三现在租的房子,租期已快到了,房东不出租了,张三急切的需要找新房,但是呢张三天天加班赚钱,没有时间去找房子,所有能张三想委托中介帮忙找一套合适的房子租下来,中介找到合适的房子后就可以通知张三来签合同租房了;这个例子中张三委托中介,而中介则代理张三去找合适的房子,这里就建立起了代理模式。Kotlin代理模式的使用代理模式就是为其他对象提供一种代...

2018-06-02 02:24:20 277

原创 Kotlin学习之路--Sealed class类详解

在上一篇 Kotlin学习之路–面向对象 中我们介绍了Kotlin类和接口的使用方法,这些类的使用与Java的有相似的概念,而今天介绍一下Kotlin的Sealed类(密封类),这是在Java中没有的概念Sealed class(密封类) 是一个有特定数量子类的类,看上去和枚举有点类似,所不同的是,在枚举中,我们每个类型只有一个对象(实例);而在密封类中,同一个类可以拥有几个对象。Seal...

2018-06-02 01:23:57 5186 1

原创 Kotlin学习之路--面向对象

面向对象我们都知道Java是面向对象语言,Kotlin同样是面向对象语言,面向对象有三大特性五大原则,先复习一下什么是面向对象的三大特性:封装(Encapsulation)封装,就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。封装的优点:良好的封装能够减少耦合。类内部的结构可以自由修改。可以对成员变量进行更精...

2018-06-01 01:50:52 550

原创 Kotlin学习之路--基础篇

Kotlin程序执行入口跟Java代码一样,Kotlin的函数入口也是一个main函数fun mian(args:Array<String>){ println("Hello World")}args:变量名称 Array: 变量类型Kotlin常见的数据类型Kotlin有7种常用的数据类型: 数据类型 存储范围 备注...

2018-05-29 01:17:00 415 2

原创 Kotlin学习之路--Kotlin简述

Kotlin是什么?Kotlin是由jetBrains开发的一门现代多平台应用的静态编程语言,Kotlin代码即可以编译成Java字节码,又可以编译成JavaScript,Kotlin是开源的,源码在这为什么要学习Kotlin?在2017年5月18日的Google开发者大会上,Google宣布将Kotlin作为Android官方语言,作为一名Android开发程序员,自然应当好好学...

2018-05-17 00:56:35 796

原创 RecyclerView添加Item点击事件

今天我们只说一个问题,就是RecyclerView添加Item点击事件,我们之前在使用Listview的时候,Listview提供了很方便的OnItemClickListener事件回调:ListView listView = new ListView(this); listView.setOnItemClickListener(new AdapterView.OnItemCli...

2018-05-15 21:15:58 419

原创 AndroidStudio之Gradle配置文件详解

AndroidStudio之GradleAndroidStudio之GradleAndroidStudio中的GradleGradle和Android Gradle插件AndroidStudio Gradle文件配置解读root build.gradle详解Moudle build.gradle详解gradle-wrapper.properties详解proguard-rul...

2018-05-06 22:47:46 816

原创 Gradle学习之基础篇

目录目录概念安装GroovyGroovy与Java特性构建脚本构建块构建生命周期依赖管理多项目构建构建项目的发布概念Gradle是一个项目自动化构建工具,用过Ant和Maven构建工具的人都知道,它们都是通过xml形式构建脚本,而Gradle通过Groovy语言封装成方法式的配置方式构建脚本;安装1、安装JDK2、下载G...

2018-05-05 19:04:59 220

原创 git常用操作命令

git常用操作命令git常用操作命令1 git工作原理图2 git远程操作2.1 git clone2.2 git fetch2.3 git remote2.4 git pull2.5 git push2.6 同时删除本地分支和服务器分支(eg:删除test分支)3 本地操作命令1 git工作原理图2 git远程操作2.1 git c...

2018-05-03 00:11:47 111

原创 SEAndroid那点事

SEAndroid那点事SEAndroid那点事概述DAC和MACDAC–自主访问控制MAC–强制访问控制DAC和MAC的区分和联系权限的添加策略SecurityContextte文件file_contexts案例总结学习资料概述Android平台的基础是Linux内核,android每个应用都运行在自己的沙盒中,在Android4....

2018-04-28 14:12:54 232

原创 Android签名问题导致安装失败

Android签名问题导致安装失败Android签名问题导致安装失败报错:INSTALL_FAILED_SHARED_USER_INCOMPATIBLEFailure [INSTALL_FAILED_TEST_ONLY]报错:INSTALL_FAILED_SHARED_USER_INCOMPATIBLE解决方案:1. 找到编译目标系统时的签名证书platf...

2018-04-26 22:31:10 1334

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