随着android6.0的更新,最大的变化莫过于新的权限控制规则。以前可以直接通过AndroidManifest配置需要的权限。而更新后,为了保证用户隐私的安全性,部分私密权限需要动态的设置,仅仅在AndroidMa…
分类:移动开发
Android框架之路——整体介绍(持续更新...)
@(框架开发) 前奏 导入github开源项目; Android框架之路——Studio如何导入Github开源项目 软件框架搭建; 一、UI ToolBar的使用; Android框架之路——ToolBar的使用 Na…
蚂蚁金服面试经历-临场发挥
一般面经很少会告诉你如何临场发挥,我觉得这边文章对你很重要。 上一篇文章讲了如何进行前期的准备,但是在面试的过程中,一定会问到没有准备过的问题。那么这个时候怎么办的?那么我来简单讲一下我总结下来的经验。依然分为几种情况:…
Android 常用开源库(一)
收集了一些比较常见的开源库,特此记录(已收录300+)。 一、基本控件 1.1TextView HTextView 一款支持TextView文字动画效果的Android组件库。 ScrollNumber 滚动数字控件 t…
Android 端音频变声方案
音频变声实质上是通过调整 PCM 数据的音调、节拍等属性,实现听感上的变化。如果是 mp3、aac 等压缩音频,则需提前解码成 PCM 数据,Android 端可以通过 MediaExtractor 及 MediaCod…
数据库索引为什么用B+树实现?
为什么大多数数据库索引都使用B+树来实现呢?这涉及到数据结构、操作系统、计算机存储层次结构等等复杂的理论知识,但是不用担心,这篇文章20分钟之后就会给你答案。 这篇文章是一系列数据库索引文章中的最后一篇,这个系列包括了下…
友盟崩溃没有数据问题 了解UncaughtExceptionHandler原理
新上线的版本突然在友盟后台的崩溃日志没有了数据,然后有自知之明,知道肯定会有崩溃的,一定是这次改版哪个地方改错了。 经过了解,友盟的错误统计也是通过UncaughtExceptionHandler这个类实现的,通过全局的…
dagger2——终篇(下)
前言 如果您对dagger2的概念,整个依赖注入框架还不清楚,可以先了解下我的前2篇文章:dagger2——基础依赖注入框架篇(上) dagger2——重点概念讲解、融合篇(中) dagger2到底能带来哪些好处? da…
MVP系列文章(五)- 泛型擦除
前言 MVP系列文章 MVP系列文章(一) – MVC 与 MVP MVP系列文章(二) – 优化attach()、detach()方法 MVP系列文章(三) – 动态代理优化每次判断…
64k方法数限制原理与解决
Android开发的朋友,遇到很多这样的情况,随着功能的增加,方法数增多,就会出现所谓的64k方法数问题。 产生原因 Android APK文件本质上是一个压缩文件,它包含的classes.dex文件是Dalvik字节码…
插件式换肤框架搭建 - 资源加载源码分析
1. 概述 我们终于要开始写插件式换肤框架了,如果一上来就写或者直接从网上去下载别人写好的代码会很坑爹,直接去写你会发现根本没法下手,直接从网上下载你会发现有的时候6.0不行,5.0上面某些自带的效果出不来,出了问题要搞…