5 CodeXiaoMai

尚未进行身份认证

暂无相关简介

等级
TA的排名 9w+

2018 年度总结

时间真是个无情的东西,转眼间就要走到 2018 年的尽头,也恰逢在新公司工作一年了,借此机会做一下年度总结(扯扯淡)。从跳槽谈起很荣幸能够在 2017 年底从一个只有十几个人的小公司跳到了一个比它大 20 倍的公司。在新公司我经历很多之前没有经历过甚至可以说是享受过的福利。全额公积金

2018-12-18 22:13:38

Environment Switcher 原理解析(注解、Apt、反射、混淆)

Environment Switcher 是一个在 Android 的开发和测试阶段,运用 Java 注解、APT、反射、混淆等原理来一键切换环境的工具。本周末随着 Environment Switcher 1.4 的发布,在这里为大家奉上 Environment Switcher 的原理解析。如果你还不了解 Environment Switcher,建议先看一下这篇文章《一键切换...

2018-09-03 10:59:23

一键切换Android应用环境(Environment Switcher)

Environment SwitcherEnvironment Switcher 是一个在 Android 的开发和测试阶段,用来一键切换环境的工具。为什么要做这个工具做这个工具是为了方便开发和测试人员在不重新打包的情况下快速切换环境。相信大家都遇到过下面的某些场景。App 在开发、测试、上线等阶段需要频繁切换环境。同一个App中的不同模块,在同一阶段需要配置不同的...

2018-08-25 19:32:20

程序猿必修课之数据结构(十)树1

上一章:程序猿必修课之数据结构(九)串 树是一对多的数据结构树的定义树(Tree)是 n (n ≥ 0)个结点的有限集。n = 0 时,称为空树。在任意一棵非空树中:有且仅有一个特定的根(root)结点。当 n > 1 时,其余结点可分为 m (m > 0) 个互不相交的有限集,其中每一个集合本身又是一棵树,并且称之为根的子树(SubTree)。...

2018-07-10 18:24:40

自动装箱与拆箱(转载)

自动装箱和拆箱从 Java 1.5 开始引入,目的是将原始类型值自动地转换成对应的对象。自动装箱与拆箱的机制可以让我们在 Java 的变量赋值或者是方法调用等情况下使用原始类型或者对象类型更加简单直接。

2017-12-28 19:27:58

ViewModel

ViewModel 负责根据生命周期来存储和管理 UI 相关(Activity 或 Fragment)的数据。当配置发生变化时,如:屏幕方向旋转,它可以保证数据不被销毁。

2017-12-25 12:33:22

Java 中的值传递

其实 Java 中是只存在值传递的,不存在引用传递。因为我们大多数人是从 C 语言入门,而 C 语言中是存在引用传递的,所以很容易在 Java 中混淆。

2017-11-17 13:59:44

Handler 消息机制

Handler 消息机制是由 Message MessageQueue Handler Looper 共同完成的。Handler 消息机制是用于在同一个进程中的多个线程之间进行通信的。由于工作线程与主线程共享地址空间,即 Handler 实例对象 mHandler 位于线程间共享的内存堆上,工作线程与主线程都能直接使用该对象,只需要注意多线程的同步问题。

2017-11-13 14:38:27

踢开Android 开发中的绊脚石

在开发过程中,许多并算不上高级技能甚至连基础知识都不算的东西经常被忽略,但这些东西还经常是开发过程中的绊脚石,很长时间都解决不了,一旦找到了解决办法,就茅塞顿开了“原来是这样啊,这不是小菜一碟吗?下次我注意就是了”。但是时间长了真的发现“好记性不如烂笔头”,当再次遇到同样的问题,发现还是一脸懵逼,但可以肯定之前遇到过这个问题。为了避免重走冤枉路,所以将它们记录下来。虚线Scroll...

2017-10-24 10:07:24

Android应用屏幕适配

问题Android 设备各种屏幕尺寸和形状,如何做好适配?解决思路和办法Android 系统定义了两种常规属性对设备屏幕进行分类:大小和密度。为了优化应用程序的外观,以适应不同的屏幕尺寸和密度,可以添加一些替代资源(布局和图片)。因此对不同屏幕尺寸、形状以及密度的适配,其实就是对布局和图片的适配。布局适配要优化不同屏幕尺寸的用户体验,应该为要支持的每个屏幕尺寸

2017-09-30 15:06:17

字符编码的历史演变

原文出处: http://www.jianshu.com/p/0f5fd93efc46因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理。最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大的整数就是255(二进制 11111111 = 十进制255),如果要表示更大的整数,就必须用更多的字节。比如两个字节可以表示的最大整数是6553

2017-08-06 11:09:09

站在 Java 的肩膀上学 Python (一)

开始学习 Python 前,我是有一定的 Java 基础的。写这篇文章的目的一方面是作为学习 Python 的笔记,另一方面对 Java 和 Python 进行对比,便于记忆。 我是跟着廖雪峰的Python教程学习的,所以笔记中有的东西是直接复制过来的。

2017-08-05 21:39:06

Android 检测设备是否为模拟器

Android 检测设备是否为模拟器 最近有一个新的需求,检测设备是否为模拟器,如果是模拟器就禁用某些功能。市面上的模拟器打开 Google 搜索 “模拟器”,各种模拟器映入眼帘。“逍遥安卓-超强安卓模拟器”、“天天模拟器”、“网易MuMu”、“BlueStacks蓝叠安卓模拟器”、“夜神安卓模拟器”、“海马玩模拟器”、“51模拟器”当然还有功能强大的“Genymotion”……搜索解决办法经

2017-07-13 16:17:08

修改MP4 Parser 生成Jar包

转载请注明出处: http://www.jianshu.com/p/78f005e80d3b这篇文章不是对 MP4 Parser 怎样使用的介绍,而是记录下修改它的源码并生成 jar 包的过程。MP4 Parser 是什么 A Java API to read, write and create MP4 container. Manipulating containers is differe

2017-05-12 17:08:54

一款开源的Android极客应用(持续更新)

转载请注明出处: http://www.jianshu.com/p/1abf8f86ad16Android极客 “Android极客”一个专门为Android程序猿打造的极客应用(未完待续….),你们的支持是我最大的动力!!!!更新预告优化GitHub模块的一些细节加入Android进阶文章精选干货(大家可以把想学习的关键技术提交issues或留言给我)以后新版本有哪些更新,你说的算

2017-05-08 14:58:41

程序猿必修课之数据结构(八)队列

文本同步发布于简书:http://www.jianshu.com/p/5d020c00fcb8上一章:程序猿必修课之数据结构(七)栈2队列的定义队列(Queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。队列是一种先进先出(First In First Out)的线性表,简称FIFO。允许插入的一端称为队尾,允许删除的一端称为队头。队列的抽象数据类型队列是特殊的线性表,因此它的各种

2017-05-02 14:32:33

程序猿必修课之数据结构(七)栈2

本文同步发表于:http://www.jianshu.com/p/5728607674e4上一章:程序猿必修课之数据结构(六)栈1栈的应用——递归斐波那契(Fibonacci)是一个经典的递归例子。斐波那契数列数字 1,1,2,3,5,8,13……构成一个序列,它的特点是:前面相邻两项之和是后一项的值。用数学函数来定义是:用递归实现打印出前 40 位的斐波那契数...

2017-04-27 18:08:21

解析 SQLiteOpenHelper

“SQLiteOpenHelper” 是一个用来管理数据库的创建和版本管理的辅助类。它是一个抽象类,要使用它必须创建一个子类继承 SQLiteOpenHelper,并实现 onCreate,onUpgrade 这两个抽象方法。这样,如果数据库存在,它就会打开;如果不存在,就会创建这个数据库,并且如果必要的话会自动升级数据库。为了确保数据库始终处于一个合理的状态,它会使用事务。它便于 ContentP

2017-04-21 13:23:10

一款开源的密码管理器

本文同步发布于掘金:https://juejin.im/post/58f58d94da2f60005d434b66 简书:http://www.jianshu.com/p/08c8a0a7320e每个人都有各种各样的账号和密码,出于安全的原因,不建议所有平台使用同样的密码,一旦泄露后果不堪设想。但每个平台都设置不同的密码,如果你能全部记住,并且不记混,我只能说你不是地球人。实际上各种平台使用...

2017-04-18 14:17:42

程序猿必修课之数据结构(六)栈1

原文:http://www.jianshu.com/p/66da0b8935ac上一章:程序猿必修课之数据结构(五)线性表3栈的定义栈(Stack)是限定仅在表尾进行插入和删除操作的线性表。我们把允许插入和删除的一端称为栈顶(top),另一端称为栈底(bottom),不含任何数据元素的栈称为空栈。栈又称为后进先出(Last In First Out)的线性表,简称 LIFO 结构。从上面这两段话,可

2017-04-17 16:46:34

查看更多

勋章 我的勋章
    暂无奖章