9 amurocrash

尚未进行身份认证

暂无相关描述

等级
TA的排名 3w+

Android programmer成长学习路径

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

2018-07-09 11:18:53

使用Cocoapods制作带测试Example的framework

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

2018-04-11 16:10:29

记录一些常用的adb命令

手机tomacadbpullsdcard/Download/PacketCapture_downcc.apk~/Downloadsmacto手机adbpushPacketCapture_downcc.apk/sdcard/adb挂掉大部分时候resetadb就好,如果还不行,出现以下错误:‘adb.exestart-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:mountedEnvironment.getDownloadCacheDirectory().getPath():/cacheEnvironment.getDataDirectory().getPath():/dataEnvironment.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怎么用的,下面类里翻具体的测试方法代码就行了,都加上了说明和注释。尤其最后几个模仿网络请求的例子。packagecom.amuro.corelib;importandroid.support.test.runner.AndroidJUnit4;i

2017-12-27 18:04:18

关于HashMap你要知道的事情

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

2017-12-23 22:09:38

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

一、ReentrantLock1、Reentrant其实是ReEntrant,可重入的意思。先来个标准例子:packagecom.amuro.studythread.chapter4_lock;importjava.util.concurrent.locks.ReentrantLock;publicclassReentrantLockExample{publ

2017-12-13 09:25:23

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

一、waitandnotify1、先看一个最low的线程通信例子packagecom.amuro.studythread.chapter3_communication;importjava.util.ArrayList;importjava.util.List;publicclassCommLowestVer{publicstaticvoidmain(String[

2017-12-12 09:33:30

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

一、synchronized1、synchronized取得的都是对象锁,而不是把一段代码或方法当做锁。packagecom.amuro.studythread.chapter_2_concurrent_access;publicclassSynchronizedBase{publicstaticvoidmain(String[]args){Sy

2017-12-10 11:40:59

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

1、虽然System.out.println内部是加了锁的,但是如果System.out.println(i--),依然是线程不安全的,因为有的JVM,i--需要三步才能完成。2、通过interrupt方法停止线程publicclassIntteruptStop{publicstaticvoidmain(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研究学习,这里通过简单分析一下AndroidClassLoader的源码来说一下这个问题。我们知道除了BootClassLoader外,Android主要提供了两个ClassLoa

2017-10-23 10:53:20

Java层热修复框架实践

结合上一篇研究的内容,我们在这一篇实现一个简单的HotFix框架。上一篇有一个重要的内容没有讲,就是在实现方法的替换后,原来的方法中的内存就会被覆盖,如果我们还想要调用原来的方法怎么办呢?所以我们需要找个地方把原来的方法存起来,不过在具体实现的时候,会遇到一个问题,就是Java的非static,非private的方法默认是虚方法,在调用这个方法的时候会有一个类似查找虚函数表的过程:mirror::

2017-10-09 08:39:33

Android热修复之AndFix原理探索(黑科技热修复的Java层实现)

最近研究了一下阿里的AndFix框架,原理本身不复杂,但是深入探索后发现热修复这块原来有很多底层的知识和黑科技值得挖掘的,故形成本篇blog和大家分享。而AndFix框架本身的使用和集成可直接根据github的README来做,这里就不赘述了。AndFix项目地址:https://github.com/alibaba/AndFix先简单说说AndFix的原理,官方的图直接拉过来:总结起来就一句话

2017-09-30 08:53:43

Algorithm Review 3 二分搜索树

前面两篇讲的排序,熟悉算法应用的童鞋都知道,排序其实是很多算法的子过程,也就是说很多算法在执行自己前,都要先对数据进行排序,才能发挥算法的核心优势。所以排序说完了,下面就要说算法的一个核心应用,搜索。一、二分查找法二分查找法的思想非常朴实和经典,可以想象一样比如我们猜别人的年龄,一开始肯定是根据他的长相外貌特征,说一个大概的数字,如果对方说不对,那我们一定会追问对方是大了还是小了,而说出来的第一

2017-05-07 13:41:16

Algorithm Review 2 堆排序

这一篇讲一讲堆排序。一、复习二叉堆二叉堆是完全二叉树或者是近似完全二叉树。完全二叉树:只有最下面的两层结点度能够小于2,并且最下面一层的结点都集中在该层最左边的若干位置的二叉树。(如果完全没有二叉树数据结构概念的童鞋建议先去学习下再来看)二叉堆满足两个特性:1.父结点的键值总是大于或等于(小于或等于)任何一个子节点的键值。2.每个结点的左子树和右子树都是一个二叉堆(都是最大堆或最小堆

2017-05-05 16:03:15

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!