Android programmer成长学习路径

一、基础 1、C & C++ 从Android应用层的要求来说,简单的界面和业务开发的确只需要java基础就够了。但是从Android程序员甚至前端、全栈程序员的要求来说,只会java只懂面向对象不懂内存和指针那就远远不够了。C和C++都是一个大坑,但其实如果先学的...

2018-07-09 11:18:53

阅读数 153

评论数 0

使用Cocoapods制作带测试Example的framework

为了搞这个东西绕了我两天,总算是搞定了,记录一下防止下次再被坑,感慨下还是我家gradle好用~ 一、安装cocoapods sudo gem install cocoapods 很多blog都用的淘宝啥的镜像,自己搞了半天建议还是翻墙直接用原版的,不然版本问题,镜像问题啥的又弄得死去活...

2018-04-11 16:10:29

阅读数 216

评论数 0

记录一些常用的adb命令

手机 to mac adb pull sdcard/Download/PacketCapture_downcc.apk ~/Downloads mac to 手机 adb push PacketCapture_downcc.apk /sdcard/ adb挂掉 大部分时候rese...

2018-04-09 16:06:13

阅读数 98

评论数 0

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

看上去Android开发只是一个app或者sdk的工作内容,但想要做到优秀的话其实要懂的东西还是非常多的。知识体系从底层的操作系统、jvm虚拟机到上层的各种复杂的界面制作,设计模式,架构设计等等,语言要懂java,C,C++,后面可能还要懂kotlin。当然术业有专攻,不同的岗位不同的项目需求应该...

2018-04-08 14:38:55

阅读数 230

评论数 0

Android常见文件目录

Environment.getExternalStorageState:mounted Environment.getDownloadCacheDirectory().getPath():/cache Environment.getDataDirectory().getPath():/da...

2018-02-22 14:12:07

阅读数 190

评论数 0

APK加壳原理简述

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

2018-01-19 09:52:36

阅读数 439

评论数 0

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

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

2017-12-27 18:04:18

阅读数 156

评论数 0

关于HashMap你要知道的事情

一、HashMap的定义和重要成员变量public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable 熟悉源码的童鞋会很奇怪,...

2017-12-23 22:09:38

阅读数 888

评论数 0

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

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

2017-12-13 09:25:23

阅读数 102

评论数 0

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

一、wait and notify1、先看一个最low的线程通信例子package com.amuro.studythread.chapter3_communication;import java.util.ArrayList; import java.util.List;public class...

2017-12-12 09:33:30

阅读数 89

评论数 0

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

一、synchronized1、synchronized取得的都是对象锁,而不是把一段代码或方法当做锁。package com.amuro.studythread.chapter_2_concurrent_access;public class SynchronizedBase { pub...

2017-12-10 11:40:59

阅读数 76

评论数 0

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

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

2017-12-07 14:58:30

阅读数 114

评论数 0

JavaScript设计模式(二)

JavaScript设计模式(二)

2017-12-06 16:36:10

阅读数 257

评论数 0

JavaScript设计模式(一)

Intro 一直很感兴趣对于JavaScript这样的动态类型语言,没有强类型也没有接口要怎么通过设计模式写出优雅的代码。这次一口气读完了腾讯出的一本关于JS设计模式的书,非常有启发,这里写一个小的系列给大家分享。还是那句话,设计是为了更好的解决问题,而不是为了设计而设计,所以重要的是理解思想,...

2017-12-05 17:37:00

阅读数 231

评论数 0

教你写Http框架(三)

一拖拖一年系列…… Orz 其实发这篇是因为最近正好有机会写了个小的http框架,其实根本都不能叫框架,就是个工具类,不过呢,经过几年的磨练我也深刻的感受到了一点:设计是个好东西,但是设计过度却是一个魔鬼。看多了Android的源码会感受到其实设计时度的把握可能比设计本身还重要,比如800多k的...

2017-11-22 17:25:35

阅读数 361

评论数 0

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

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

2017-10-23 10:53:20

阅读数 274

评论数 0

Java层热修复框架实践

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

2017-10-09 08:39:33

阅读数 340

评论数 0

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

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

2017-09-30 08:53:43

阅读数 340

评论数 1

Algorithm Review 3 二分搜索树

前面两篇讲的排序,熟悉算法应用的童鞋都知道,排序其实是很多算法的子过程,也就是说很多算法在执行自己前,都要先对数据进行排序,才能发挥算法的核心优势。所以排序说完了,下面就要说算法的一个核心应用,搜索。一、二分查找法 二分查找法的思想非常朴实和经典,可以想象一样比如我们猜别人的年龄,一开始肯定是根...

2017-05-07 13:41:16

阅读数 322

评论数 0

Algorithm Review 2 堆排序

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

2017-05-05 16:03:15

阅读数 209

评论数 0

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