移动开发
amurocrash
这个作者很懒,什么都没留下…
展开
-
读源码(三)—— Android LruCache
文章目录Step1、示例Step2、构造函数Step3、增删改查一、增加或修改元素二、访问元素三、删除元素Step1、示例考虑用图片来模拟太麻烦,就弄个简单的类吧:public class LruCacheTestActivity extends DefaultActivity { static final String tag = "lru"; @Override ...原创 2020-04-11 13:04:43 · 172 阅读 · 0 评论 -
读源码(二)—— Android AsyncTask
文章目录Step1、示例代码Step2、创建任务Step3、串行,execute(),并行,executeOnExecutor()Step4、postResultStep Extra、更新进度这个其实现在已经不怎么用了,而且本身原理不复杂,就简单说一下吧。老规矩先贴一个调用的代码,然后根据大流程来分析。Step1、示例代码public class AsyncTaskTestActivity...原创 2020-04-09 19:20:37 · 150 阅读 · 0 评论 -
Android热修复之QQ空间与QFix方案
前文介绍了阿里的Hotfix,它的热修复思路是粗暴的底层方法指针的替换,今天我们来看看另一种思路,也就是QQ空间团队提供的热修复方案。要理解这个方案的思想,先要理解dex分包技术,这类文章很多,大家可以自己google研究学习,这里通过简单分析一下Android ClassLoader的源码来说一下这个问题。我们知道除了BootClassLoader外,Android主要提供了两个ClassLoa原创 2017-10-23 10:53:20 · 902 阅读 · 0 评论 -
Android热修复之AndFix原理探索(黑科技热修复的Java层实现)
最近研究了一下阿里的AndFix框架,原理本身不复杂,但是深入探索后发现热修复这块原来有很多底层的知识和黑科技值得挖掘的,故形成本篇blog和大家分享。而AndFix框架本身的使用和集成可直接根据github的README来做,这里就不赘述了。AndFix项目地址:https://github.com/alibaba/AndFix先简单说说AndFix的原理,官方的图直接拉过来:总结起来就一句话原创 2017-09-30 08:53:43 · 770 阅读 · 1 评论 -
Algorithm Review 3 二分搜索树
前面两篇讲的排序,熟悉算法应用的童鞋都知道,排序其实是很多算法的子过程,也就是说很多算法在执行自己前,都要先对数据进行排序,才能发挥算法的核心优势。所以排序说完了,下面就要说算法的一个核心应用,搜索。一、二分查找法 二分查找法的思想非常朴实和经典,可以想象一样比如我们猜别人的年龄,一开始肯定是根据他的长相外貌特征,说一个大概的数字,如果对方说不对,那我们一定会追问对方是大了还是小了,而说出来的第一原创 2017-05-07 13:41:16 · 451 阅读 · 0 评论 -
理解AIDL原理以及系统生成的源码
工具好用,但是会有一个缺点,就是会让你不得不依赖说明书。对于我这个记忆力很差的人来说,每次使用工具都要去翻说明书是一件极其痛苦的事情,而且还有很多坑会忘记怎么填。基于此,我很多时候会觉得不如自己去理解一下工具制造的方法,然后自己造一个好了,好像我的大脑是对这种东西印象特别深刻,所以下次遇到问题我写个工具直接用的效率,比查说明书再重新趟一遍坑要高不少。今天,我要把aidl这个工具给拆了。Part原创 2016-12-16 15:31:17 · 998 阅读 · 0 评论 -
Android SQLite Memento1 —— Basic SQL
数据类型&约束条件 数据类型: SQLite中的数据类型只有5种,如下所示: Null,数据值为空; INTEGER,整型; REAL,浮点型; TEXT,字符类型,使用数据库编码存放; BLOB,只是一个数据块,完全按照输入存放。约束条件: NOT NULL,非空; UNIQUE,唯一; PRIMARY KEY,主键; FOREIGN KEY,外键; CHECK,条件检查原创 2016-10-06 16:59:11 · 477 阅读 · 0 评论 -
关于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 · 1230 阅读 · 0 评论 -
15个JUnit测试方法教会你常用的RxAndroid套路
RxJava的概念原理思想这里就不说了,百度可以找到一堆。个人始终坚持讲一堆有的没的,不如看几段实际代码,所以本文就不废话了,不知道RxAndroid怎么用的,下面类里翻具体的测试方法代码就行了,都加上了说明和注释。尤其最后几个模仿网络请求的例子。package com.amuro.corelib;import android.support.test.runner.AndroidJUnit4;i原创 2017-12-27 18:04:18 · 362 阅读 · 0 评论 -
APK加壳原理简述
先把核心原理记录一下,代码随后再补。PRE、dex文件结构知识和加壳原理 先看下dex文件的基本结构 对于加壳主要关注3个关键字: 1)checksum 文件校验码,使用alder32算法,校验文件除了maigc和checksum外余下的所有文件区域,用于检查文件错误。 2)signature 使用SHA-1算法hash除了magic ,checksum和signature原创 2018-01-19 09:52:36 · 3045 阅读 · 0 评论 -
Android常见文件目录
Environment.getExternalStorageState:mounted Environment.getDownloadCacheDirectory().getPath():/cache Environment.getDataDirectory().getPath():/data Environment.getExternalStorageDirectory().getP...转载 2018-02-22 14:12:07 · 546 阅读 · 0 评论 -
自己用的Android面试笔试题汇总(持续更新)
看上去Android开发只是一个app或者sdk的工作内容,但想要做到优秀的话其实要懂的东西还是非常多的。知识体系从底层的操作系统、jvm虚拟机到上层的各种复杂的界面制作,设计模式,架构设计等等,语言要懂java,C,C++,后面可能还要懂kotlin。当然术业有专攻,不同的岗位不同的项目需求应该还是有所区别。本文力求总结这样一份较为全面且有区分度的面试题集合,当然主要还是自己招人用,也欢迎大家提...原创 2018-04-08 14:38:55 · 700 阅读 · 0 评论 -
记录一些常用的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 · 266 阅读 · 0 评论 -
使用Cocoapods制作带测试Example的framework
为了搞这个东西绕了我两天,总算是搞定了,记录一下防止下次再被坑,感慨下还是我家gradle好用~一、安装cocoapodssudo gem install cocoapods很多blog都用的淘宝啥的镜像,自己搞了半天建议还是翻墙直接用原版的,不然版本问题,镜像问题啥的又弄得死去活来。 一堆控制台刷屏后完成,测试一下:pod --version输出版本号表示安装成功~...原创 2018-04-11 16:10:29 · 628 阅读 · 0 评论 -
Android programmer成长学习路径
一、基础1、C & C++从Android应用层的要求来说,简单的界面和业务开发的确只需要java基础就够了。但是从Android程序员甚至前端、全栈程序员的要求来说,只会java只懂面向对象不懂内存和指针那就远远不够了。C和C++都是一个大坑,但其实如果先学的java已经有了比较完备的编程思想,其实只要从指针后面开始学习就ok了,C的话还要深入了解一下结构体,函数指针,内存控...原创 2018-07-09 11:18:53 · 483 阅读 · 0 评论 -
不用ViewPager和Fragment实现滑动页面的效果
这是一篇被逼出来的文章。 一入SDK深似海,从此jar包是路人,没错,你以为我愿意不用ViewPager和Fragment啊,因为SDK为了减少包体大小不能用v4的包啊!坑爹的v4包居然有1M多,你们可真能写啊。我相信一定有朋友会建议说,把v4包里相关的类抠出来用啊,呵呵哒,祝你抠的愉快。言归正传,ViewPager和Fragment那是一套相当庞大的界面框架,想要自己实现一个功能相似且能完美的控原创 2016-11-04 11:10:34 · 1892 阅读 · 0 评论 -
Activity Dialog样式的那些坑
讲道理,先允许我吐槽一下google的api,我找了一天多的资料也没找到除了在manifest中配置外,其他的实现Activity对话框样式的方法。这对app来说可能无所谓,但是SDK因为大部分情况下不能使用xml配置文件,会导致大量的特性要去寻求代码的解决方案,而谷歌基本都没有提供这样方案的官方文档,只能自己看源码去倒推,甚至很多时候还要反射来做。 坑1: Dialog样式的Activity是原创 2016-11-03 17:15:26 · 5805 阅读 · 1 评论 -
解读ThinkAndroid框架
先呵呵一下碎屏保。终于有时间把这两天对这个框架的解读做一些总结了,原创 2014-10-22 11:08:40 · 2033 阅读 · 0 评论 -
Android读取Excel2007
基于apache大神的POI,这个框架很重的赶脚,毕竟不是为Android设计的,原创 2014-11-14 17:10:06 · 1448 阅读 · 1 评论 -
三个类学习通过注解实现自动测试
不了解注解的童鞋可先去补一下注解的基础知识。我们现在想要测试一个类中的原创 2014-10-15 16:07:38 · 1124 阅读 · 0 评论 -
实现对特定内容改变字体颜色的TextView
最近产品中需要一个搜索功能,比如搜索Android,搜索得到的内容中需要对所有的Android进行标红的处理,就自己重写了个textView实现了这个功能。上代码:package com.amuro.custom_text_view;import java.util.ArrayList;import java.util.List;import android.content.Cont原创 2015-03-17 14:54:51 · 1528 阅读 · 0 评论 -
气泡随机分布界面的实现
废话不多说,最近需求要实现一个这样的界面,如下图: 整体界面要求为气泡大致位置在屏幕某个区域,但圆心本身位置在该区域内随机,气泡半径,背景色也随机。然后界面展示时有一个漂浮出来的动画效果,气泡之间可以有遮挡但不可以挡住字,点击换一批的时候,重复以上所述动画效果,所有随机值刷新。原创 2015-04-29 18:01:02 · 4572 阅读 · 4 评论 -
自定义动态设置check图片的ImageView取代checkBox
本来checkBox是可以使用的,但是现在新需求里要增加一个状态是disabled,disabled状态要展示特定的图片,这个checkBox解决不了,而且状态也不好控制,所以干脆自己封装一个算了。 先定义一个自定义attrs: 然后写这个自定义的原创 2015-05-07 11:19:17 · 3180 阅读 · 1 评论 -
Android实现一个简单的课程表
课程表要做复杂要考虑的东西很多,这里只说实现界面的一个简单的思路:ScrollView嵌套七个(一周七天)LinearLayout, 而每个LinearLayout又能封装成一个课程表View的ViewItem,都继承自FrameLayout。下面上代码: 首先是课程表每一天的item,现在默认一天是7节课,后面可设置成可拓展用代码实现,这里现在xml里写死:<Linear原创 2015-05-28 09:55:05 · 15427 阅读 · 0 评论 -
自定义类似优酷首页的BannerView幻灯片展示
尼玛,最近自定义view玩hight了根本停不下来,今天想封装一个类似优酷首页title的banner栏,我会在这个基础上加一个title的展示,优酷的banner如下图: 首先是布局文件,自然是ViewPager主打,配上底层的dot indicator和title栏:<RelativeLayout xmlns:android="http://sche原创 2015-05-29 10:47:10 · 2271 阅读 · 1 评论 -
Android根据xml配置文件动态修改九宫格功能配置
大家知道很多app的首页都是由GridView组成的功能入口,这个九宫格一般在第一版的时候把功能写死的,这显然不能适应需求的不断变更的,所以今天在这里想写一个简单的根据配置文件自动生成的gridView,点击之后可跳转到配置好的Activity而不用修改一行代码。首先设计一个简单的xml配置文件,塞到res/xml文件夹下,当然这里后期可以配置到服务器上动态获取更新,demo的话就先放在apk原创 2015-08-05 09:41:57 · 2196 阅读 · 0 评论 -
自定义类似ViewPager的效果的ViewGroup
最近换工作,闲下来继续深入研究自定义View,View之后的另一个大类就是ViewGroup,个人理解其为View的容器,应该是一个组合模式的关系,因为ViewGroup也继承自View嘛。ViewGroup要处理几个重要的东西: 1. MeasureSpec的取得和计算; 2. layout摆放子View的位置; 3.处理和子View的滑动冲原创 2015-09-14 16:14:11 · 1295 阅读 · 0 评论 -
android仿网易新闻下拉刷新上拉关闭容器
学习到了一个阶段需要总结,对程序员来说最好的总结方式就是把最近掌握的内容写一个demo出来,自定义View也看了蛮久了,最近一直在用网易新闻app,感觉下拉刷新上拉关闭的用户体验非常舒服,所以就自己照着写一个给最近的学习一个总结吧。 这次没有直接继承ViewGroup而是直接继承了LinearLayout,所以onMeasure就不需要自己折腾了,下面直接上代码,然后讲解下思路:pa原创 2015-09-17 21:10:08 · 4478 阅读 · 0 评论 -
安卓获取电池信息
总结了一些代码,mark住。private void test() { IntentFilter intentFilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED); Intent batteryStatusIntent = context.registerReceiver(null, intentFi原创 2016-06-01 16:55:17 · 2258 阅读 · 0 评论 -
Android NDK开发技术与技巧总结
Android NDK技术深度总结,同时提供了一些作者自己研究的开发技巧,尤其是C开发时JNI源码的自动提示和测试技巧原创 2016-07-08 14:34:23 · 4074 阅读 · 1 评论 -
Java常用加密技术和代码总结
Java常用加密技术和代码总结,还通过一些生活中容易理解的场景来解释算法复杂的逻辑。原创 2016-07-15 17:18:02 · 17283 阅读 · 4 评论 -
Android通过Window获取View&模拟点击&自定义Toast
自己记录: 1. 有时候我们有多个Activity或dialog,B中需要拿到A中的某个View,但是无法通过传值的方式来实现; 2. B中需要模拟A中某个button的点击事件; 2. 自定义Toast,最大的好处是不会抢走Activity或Dialog的焦点。不多说,上代码: 首先是Activity:package com.amuro.dialogtopdemo;import andro原创 2016-07-27 09:57:16 · 2507 阅读 · 0 评论 -
AndroidStudio设置三步走
记录一下,老了记性不行了 1. font改字体 2. keymap改快捷键 3. code style改自定义风格原创 2016-07-21 19:15:14 · 816 阅读 · 0 评论 -
Android 下拉刷新控件SwipeRefreshLayout
无意间看到的好东西,mark一下 SwipeRefreshLayout 是谷歌官方下拉刷新控件,4.0以下的版本需要用到 android-support-v4.jar包才能用到android-support-v4.jar 包下载地址:http://download.csdn.net/detail/h7870181/7784247官网API地址:https://developer.原创 2014-11-14 11:43:57 · 993 阅读 · 0 评论