自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 apk简单打包过程解析

2019-01-10 10:51:01 212

原创 算法 两数相加

给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。 class Solution { public ListNode addTwoNumbers(ListNode l...

2018-12-22 13:56:56 295

原创 Binder 简单解析

 1.BinderBinder是android跨进程通信的一种,底层实现为AIDL。当bindService()时,会返回一个Binder对象,客户端就可以获取提供的服务,服务包括普通服务和基于AIDL的服务。其中普通服务不涉及进程通信,较为简单。2.AIDL新建AIDL文件,sdk为自动为我们生成Binder类。AIDL类:interface IBookManager ...

2018-12-21 10:44:52 154

原创 IntentService 简单解析

**1.用法解析**IntentService是Service的子类,会默认开启一个工作线程,逐一处理所有请求,直到所有请求都处理完成后,自动停止服务,无需再手动进行停止。只需要实现onHandleIntent即可。public class TestIntentService extends IntentService {private static final String TAG ...

2018-12-19 15:16:46 111

原创 android 版本更新服务

从获取到下载链接后,开启服务下载,下载完成后安装。其他业务逻辑均为处理。后期会添加静默下载完成后提示安装,断线续传,本地是否有下载过的版本等功能。启动服务时,需传入url(下载链接)、filePath(存放路径)、authority(7.0 及清单文件中的 <provider>)。 采用DownloadManager 进行下载。通过接受DownloadManager发出的下载完...

2018-12-11 20:59:39 229

原创 Android IntentFilter 匹配规则解析

IntentFilter 中的过滤信息包含三种,action、catagory、data,只有三种完全匹配,才可以启动activity。activity可有多组IntentFilter,只需要匹配其中一组即可。1.actionaction是字符串类型,我们可以使用自定义或系统预设的action。一个IntentFilter可能含有多个action,只需要匹配其中一个即可匹配成功,且不可没有...

2018-12-10 20:41:51 194

原创 Retrofit +rxjava的二次封装

1.依赖  implementation 'com.squareup.okhttp3:logging-interceptor:3.10.0' implementation'com.github.valdio:SerializableCookieJar:1.0.0' implementation'io.reactivex.rxjava2:rxjava:2.2.4' impleme...

2018-12-06 21:16:03 276

原创 EventBus 简单源码、原理分析

1.初始化EventBus.getDefatult(),单例模式初始化。public static EventBus getDefault() { EventBus instance = defaultInstance; if (instance == null) { synchronized (EventBus.class) { insta

2018-02-24 15:51:02 169

原创 kotlin学习笔记(四)

一、继承父类需要open才能继承,父类的方法、属性也需要open才能被复写。接口、接口方法、抽象类默认为open。覆写父类成员需要override关键字。abstract class Person(open val age: Int) {    abstract fun work()}class MaNong(age: Int)

2017-11-09 16:44:56 137

原创 kotlin学习笔记(三)

一、forfor循环的三种方式,只要实现了iterator,都可以使用for循环。fun main(args: Array) {    val list = arrayListOf(12, 3, 4, 5)    for (i in list) {            }    for ((index, value) in list.withInd

2017-11-08 16:05:08 126

原创 kotlin学习笔记(二)

一、数据初始化var可使用laterinit来延迟初始化,需后期再初始化。val使用 by lazy 后接初始化的表达式。class B {}class A {    var num = 0    lateinit var name: String//生成A的时候,不初始化,需要初始化    lateinit va

2017-11-07 15:39:07 322

原创 kotlin学习笔记(一)

一、基本类型        (1)数值类型                包含byte、short、int、long、float 、double等,  不包含char,char是一个独立的数据类型。                  不能隐式将较小的类型转换为较大的类型。                       (2)

2017-11-04 15:56:04 183

原创 Android 头像修改

public class AvatarMananger { private String AVATAR_PATH = Environment.getExternalStorageDirectory().getPath() + File.separator + "xd"; public static final int AVATER_PIC = 1001; public sta

2017-09-02 13:44:26 386

原创 Android 性能优化

app的功能现在日益复杂,同时对页面的运行速度,响应速度也有了更高的要求,本文章介绍了几种比较常见的性能检测工具,性能优化方式。Android性能优化主要进行布局优化和内存优化。1.布局优化(1)避免过度绘制。Android系统提供检测过度绘制的工具,开发者选项中 “Enable GPU Overdraw”,根据颜色不同,可产看是否过度绘制,尽量增大蓝色区域,减少红色区域。同时也可以使用“Prof

2017-07-25 17:00:33 189

原创 Android 混淆与反编译的简单记录

-dontusemixedcaseclassnames #混淆时不使用大小写混合类名-dontskipnonpubliclibraryclasses #不跳过library中的非public的类-verbose #打印混淆的详细信息-dontoptimize

2017-07-21 13:33:30 244

原创 tomcat

看是否已经有tomcat在运行了ps -ef |grep tomcat如果有,用kill;kill -9 pid #pid 为相应的进程号

2017-07-17 11:45:54 166

转载 创业企业管理

企业的管理本质上是为“提高效率,创造价值”而服务的。所以说任何一个公司要提高管理效率最重要的是“是明确或者重新调整组织架构”。这句话想要表达的意思是:确认清楚,谁在什么样位置,负责什么样内容,不允许两个人交叉负责,也不允许集体领导,不允许有模糊的领域。出了问题,大家都清楚谁应该出来承担责任。取得了成绩,谁的功劳也很清楚。只有把这些梳理清楚了,和赏罚制度挂上了勾,才能提高一个团队的战

2017-07-15 11:24:51 1203

原创 onActivityResult 不调用原因

这与 Activity 的加载模式(launchMode)有关,该属性可以在 AndroidManifest.xml 中设置。 原先将其设为 launchmode=”SingleTask”,经测试,所有需要传递或接收的 Activity 不允许设置该属性,或只能设为标准模式,否则系统将在 startActivityForResult() 后直接调用 onActivityResult()。

2017-07-05 11:55:06 303

原创 edittext 行间距

android:lineSpacingMultiplier=”1.2” – 设定行高为标准行高的1.2倍 android:lineSpacingExtra=”20dp” – 设定行高在标准行高的基础上再增加 20 dp

2017-06-23 15:09:56 1238

原创 kotlin初接触

class KtTest : BaseActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) test(Perso

2017-06-20 11:05:35 167

原创 Android Loading Dialiog

可自定义图片 颜色的loading dialogimport android.animation.ObjectAnimator;import android.animation.ValueAnimator;import android.app.Dialog;import android.content.Context;import android.content.res.ColorState

2017-05-13 11:22:17 180

原创 android 动态申请权限

需要申请的权限:group:android.permission-group.CONTACTS permission:android.permission.WRITE_CONTACTS permission:android.permission.GET_ACCOUNTS permission:android.permission.READ_CONTACTSgroup:a

2017-02-06 14:17:54 522

原创 持有对象(容器)

1。Collection。List必须按插入的顺序保存元素,而Set不能有重复元素。Queue按照排队规则来确定对象的顺序。 2。Map。一组成对的键值对对象。 3。Array.asList()接受一个数组或用逗号分隔的元素列表,将其装换成一个List对象。Collections.addAll()接受一个Coellection对象,以及一个数组或用逗号分隔的元素列表,将元素添加到这个Collec

2016-12-20 15:08:08 235

原创 内部类

1。可以将一个类的定义放到另一个类的定义内部,这就是内部类。 2。内部类能访问其外围对象的所有成员。 3。内部类对象只能在与其外部类对象相关联饿情况下才能别创建。 4。生成外部类对象的引用,外部类的名字后面加圆点和this(classNmme.this)。 5。要创建内部类的对象,必须使用外部类对象来创建内部类对象,在拥有外部类对象之前是不可能创建内部类的。(xx.new aa()) 6

2016-12-17 10:06:35 242

原创 接口

1。抽象类使得我们可以很容易地将公共方法沿着继承层次结构向上移动。 2。interface不仅仅是一个极度抽象的类,因为它允许人们通过创建一个能够被向上转型为多种基类的类型,来实现类似多重继承变种的特性。 3。接口里的域都是隐式的static和final的。 4。一个方法操作继承,只能操作这个类和它的子类。接口在很大程度上放宽这种限制,因此可以编写复用性更好的代码。 5。创建一个能够根据所传

2016-12-12 15:53:48 260

原创 多态

1。多态通过分离做什么和怎么做,从另一角度将接口和实现分离开来。 2。将一个方法同调用者主体关联起来被称作绑定。 3。程序执行前进行绑定,叫做前期绑定。在运行时根据对象的类型进行绑定,叫做后期绑定(动态绑定或运行时绑定)。 4。java中除了static方法和final方法(private属于final),其他都是后期绑定。 5。多态是一项让程序员将改变的事物和未变的事物分离开的重要技术。

2016-12-10 09:59:11 154

原创 android 整理时间格式

将string类型的时间,根据是否为今天,是否为今年分别进行不同的显示。 public static String formatTime(String data) { if (!TextUtils.equals(data, "") && data != null) { try { SimpleDateFormat sdf =

2016-12-08 15:12:58 158

原创 复用类

1。初始化引用的四种方式:一 在定义对象的地方;二 在类的构造器里面; 三 惰性初始化:在正要使用之前 四 使用实例初始化。 2。类如果没有明确指出继承,则隐式的从java的标准根类Object进行继承。 3。用super关键字来表示超类的意思。 4。创建一个导出类,该对象包含了一个基类对象,这个对象与你用基类创建的对象是一样的。区别是,一个是在外部,基类的子对象是包装在导出类对象内部。 5

2016-12-05 16:22:23 222

原创 访问权限控制

1。编写java源代码文件时,此文件通常称为编译单元,可以有一个public类。 2。默认访问权限没有关键字,通常指包访问权限(friendly)。 3。继承而来的类既可以访问public成员也可以访问protected成员。 4。任何可以肯定只是该类的一个助手方法的方法,都可以把它制定为private。 5。把他的访问权限赋予派生类而不是所有类,需要protected来完成,protect

2016-12-05 09:20:14 175

原创 初始化和清理

1。构造器采用与类名相同的名称。 2。相同的词具有不同的含义,所以要使用重载。构造器也是强制使用重载的原因。 3。每个重载都要有独一无二的参数类型列表。 4。传入的数据类型小于方法中声明的形式参数类型,实际类型会被提升;传入的数据类型大于方法中声明的形式参数类型,实际类型执行窄化转换。 5。根据返回值判断重载不可行,因为有时候并不关心方法的返回值,想要的是方法调用的其他效果,这是可能会忽略返

2016-12-01 16:24:14 241

原创 斐波那契数列

斐波那契数列 ———–递归 public class E09_Fibonacci { static int fib(int n) { if (n <= 2) return 1; return fib(n-1) + fib(n-2); } public static void main(String[] args) { // Get the max value from the command

2016-11-29 16:01:52 145

原创 Android 初学activity的启动模式

今天学习了一下activity的LaunchMode,突然就想尝试一下在博客上记录一下,所以写下了这篇文章!! 首先,默认情况下,我们会发现activity会保持”后进先出“的情况,即使是启动同一个活动,也会重复创建多个实例,这显然不合理,所以提供了启动模式来处理这个问题。启动模式有四种:standard,singleTop,singleTask,singleInstance:

2016-08-31 10:20:14 263

空空如也

空空如也

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

TA关注的人

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