10 amurocrash

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 3w+

读源码(三)—— Android LruCache

文章目录Step1、示例Step2、构造函数Step3、增删改查一、增加或修改元素二、访问元素三、删除元素Step1、示例考虑用图片来模拟太麻烦,就弄个简单的类吧:public class LruCacheTestActivity extends DefaultActivity { static final String tag = "lru"; @Override ...

2020-04-11 13:04:43

读源码(二)—— Android AsyncTask

文章目录Step1、示例代码Step2、创建任务Step3、串行,execute(),并行,executeOnExecutor()Step4、postResultStep Extra、更新进度这个其实现在已经不怎么用了,而且本身原理不复杂,就简单说一下吧。老规矩先贴一个调用的代码,然后根据大流程来分析。Step1、示例代码public class AsyncTaskTestActivity...

2020-04-09 19:20:37

读源码(一)—— Android handler机制详解

预备知识Java的ThreadLocal,保存线程的“私有”数据,这个不贴参考链接了,比较easy;Linux的epoll机制,底层真正的消息处理机制,没有消息的时候阻塞不消耗cpu资源,非常复杂但是也非常有趣,参考:https://blog.csdn.net/shenya1314/article/details/73691088;享元模式——Message复用,模板模式——hanlder...

2020-04-08 19:45:00

自己写代码理解Vue的数据双向绑定

重要代码的作用都写在代码注释中了。核心点:1、Object.defineProperty(),相当于给相关属性在取值和赋值时增加proxy,可以执行proxy中的功能,这里就是在get是进行双向绑定2、Compiler的本质就是遍历html文档,把按照vue规范定的字段找出来做处理。比如{{deep.a}}取出来之后,从vm实例中拿出真实的值把{{deep.a}}替换掉。<!DOCT...

2020-02-14 13:11:14

Android programmer成长学习路径

一、基础1、C & C++从Android应用层的要求来说,简单的界面和业务开发的确只需要java基础就够了。但是从Android程序员甚至前端、全栈程序员的要求来说,只会java只懂面向对象不懂内存和指针那就远远不够了。C和C++都是一个大坑,但其实如果先学的java已经有了比较完备的编程思想,其实只要从指针后面开始学习就ok了,C的话还要深入了解一下结构体,函数指针,内存控...

2018-07-09 11:18:53

使用Cocoapods制作带测试Example的framework

为了搞这个东西绕了我两天,总算是搞定了,记录一下防止下次再被坑,感慨下还是我家gradle好用~一、安装cocoapodssudo gem install cocoapods很多blog都用的淘宝啥的镜像,自己搞了半天建议还是翻墙直接用原版的,不然版本问题,镜像问题啥的又弄得死去活来。 一堆控制台刷屏后完成,测试一下:pod --version输出版本号表示安装成功~...

2018-04-11 16:10:29

记录一些常用的adb命令

手机 to macadb pull sdcard/Download/PacketCapture_downcc.apk ~/Downloadsmac to 手机adb push PacketCapture_downcc.apk /sdcard/adb挂掉大部分时候reset adb就好,如果还不行,出现以下错误: ‘adb.exe start-server’ fail...

2018-04-09 16:06:13

自己用的Android面试笔试题汇总(持续更新)

看上去Android开发只是一个app或者sdk的工作内容,但想要做到优秀的话其实要懂的东西还是非常多的。知识体系从底层的操作系统、jvm虚拟机到上层的各种复杂的界面制作,设计模式,架构设计等等,语言要懂java,C,C++,后面可能还要懂kotlin。当然术业有专攻,不同的岗位不同的项目需求应该还是有所区别。本文力求总结这样一份较为全面且有区分度的面试题集合,当然主要还是自己招人用,也欢迎大家提...

2018-04-08 14:38:55

Android常见文件目录

Environment.getExternalStorageState:mounted Environment.getDownloadCacheDirectory().getPath():/cache Environment.getDataDirectory().getPath():/data Environment.getExternalStorageDirectory().getP...

2018-02-22 14:12:07

APK加壳原理简述

先把核心原理记录一下,代码随后再补。PRE、dex文件结构知识和加壳原理 先看下dex文件的基本结构 对于加壳主要关注3个关键字: 1)checksum 文件校验码,使用alder32算法,校验文件除了maigc和checksum外余下的所有文件区域,用于检查文件错误。 2)signature 使用SHA-1算法hash除了magic ,checksum和signature

2018-01-19 09:52:36

15个JUnit测试方法教会你常用的RxAndroid套路

RxJava的概念原理思想这里就不说了,百度可以找到一堆。个人始终坚持讲一堆有的没的,不如看几段实际代码,所以本文就不废话了,不知道RxAndroid怎么用的,下面类里翻具体的测试方法代码就行了,都加上了说明和注释。尤其最后几个模仿网络请求的例子。package com.amuro.corelib;import android.support.test.runner.AndroidJUnit4;i

2017-12-27 18:04:18

关于HashMap你要知道的事情

一、HashMap的定义和重要成员变量public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable 熟悉源码的童鞋会很奇怪,为啥AbstractMap已经实现了Map接口,HashMap还要再实现一遍呢?为啥呢?我™也不知道……直接看HashMap的重要成员变量:

2017-12-23 22:09:38

Java并发编程学习(四)—— Lock

一、ReentrantLock1、Reentrant其实是ReEntrant,可重入的意思。先来个标准例子:package com.amuro.studythread.chapter4_lock;import java.util.concurrent.locks.ReentrantLock;public class ReentrantLockExample{ publ

2017-12-13 09:25:23

Java并发编程学习(三)——线程通信

一、wait and notify1、先看一个最low的线程通信例子package com.amuro.studythread.chapter3_communication;import java.util.ArrayList;import java.util.List;public class CommLowestVer{ public static void main(String[

2017-12-12 09:33:30

Java并发编程学习(二)—— 对象及变量的并发访问

一、synchronized1、synchronized取得的都是对象锁,而不是把一段代码或方法当做锁。package com.amuro.studythread.chapter_2_concurrent_access;public class SynchronizedBase{ public static void main(String[] args) { Sy

2017-12-10 11:40:59

Java并发编程学习(一)——标准Thread

1、虽然System.out.println内部是加了锁的,但是如果System.out.println(i- -),依然是线程不安全的,因为有的JVM,i- -需要三步才能完成。2、通过interrupt方法停止线程public class IntteruptStop{ public static void main(String[] args) { try

2017-12-07 14:58:30

JavaScript设计模式(二)

JavaScript设计模式(二)

2017-12-06 16:36:10

JavaScript设计模式(一)

Intro一直很感兴趣对于JavaScript这样的动态类型语言,没有强类型也没有接口要怎么通过设计模式写出优雅的代码。这次一口气读完了腾讯出的一本关于JS设计模式的书,非常有启发,这里写一个小的系列给大家分享。还是那句话,设计是为了更好的解决问题,而不是为了设计而设计,所以重要的是理解思想,而不是当成一个模板去套。毕竟设计模式会带来性能的损耗和他人阅读代码学习成本的上升,如非必要,勿增实体,

2017-12-05 17:37:00

教你写Http框架(三)

一拖拖一年系列…… Orz 其实发这篇是因为最近正好有机会写了个小的http框架,其实根本都不能叫框架,就是个工具类,不过呢,经过几年的磨练我也深刻的感受到了一点:设计是个好东西,但是设计过度却是一个魔鬼。看多了Android的源码会感受到其实设计时度的把握可能比设计本身还重要,比如800多k的一个View类,如果用设计模式强行设计重构的话,估计能写出来几百个文件吧。把理论用到实践中是技术,但是这

2017-11-22 17:25:35

Android热修复之QQ空间与QFix方案

前文介绍了阿里的Hotfix,它的热修复思路是粗暴的底层方法指针的替换,今天我们来看看另一种思路,也就是QQ空间团队提供的热修复方案。要理解这个方案的思想,先要理解dex分包技术,这类文章很多,大家可以自己google研究学习,这里通过简单分析一下Android ClassLoader的源码来说一下这个问题。我们知道除了BootClassLoader外,Android主要提供了两个ClassLoa

2017-10-23 10:53:20

查看更多

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