自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(76)
  • 资源 (2)
  • 收藏
  • 关注

转载 Android系统启动流程

Android系统启动流程学习,会对Android系统与Linux系统的关系有一个更深的理解。= Android启动流程 =Android启动时序图== Linux启动 ===== 开机过电,复位器件 ====== 执行Bootloader程序 ===arm中是uboot或者fastboot如果在fastboot的运行过程中没有按下特别的按键,执行第一个应用程序(即...

2019-04-11 18:31:40 898

原创 Android Looper原理源码分析

在很久以前的时候转载了一小篇文章《Android Message Queue、Message、Looper、Handler》白话介绍了一下Android Message Queue、Looper、Handler这几个概念之间的关系。其中Looper居于这几个概念的核心,一个Looper里面有一个MessageQueue。多个Handler可以共享一个Looper,一个线程里面只有一个Looper。今天再深入分析一下Looper的原理源码

2019-04-08 15:43:37 1460

原创 binder Driver (binder IPC) 功能介绍与分析

在我的Android体系架构解读一文中,在kernel层有很多个驱动,Android Logger,Shared Memory Driver,Binder Driver是非常通用非常重要的几个。 其中Binder Driver是Android Framework IPC机制的核心,来学习一下吧

2019-03-30 10:07:04 2039

原创 ACRA功能介绍与分析

ACRA是一个Android平台程序崩溃信息收集的开源库,用于嵌入到Android Project中,当该程序崩溃的时候ACRA能够在进程彻底结束前收集崩溃状态时的该应用和设备的各种信息,生成崩溃报告,保存到本地,并在合适的时机发送报告到服务端。使得开发者能进行程序错误信息的收集,可以更好的改进程序以提高兼容性,目前只能支持采集java层的crash,要采集native层需要考虑集成breakpad

2019-03-22 17:39:14 2817

原创 Android 开源库与开源项目

花了点心思整理的一些Android开源库与开源项目,后面再慢慢补充

2019-03-17 09:25:53 514

转载 Android 7.0 新特性和功能,系统和 API 行为更新

Android 7.0 API 更新(Android N、API Level 24)电池和内存Android 7.0 包括旨在延长设备电池寿命和减少 RAM 使用的系统行为变更。这些变更可能会影响您的应用访问系统资源,以及您的应用通过特定隐式 intent 与其他应用交互的方式。低电耗模式Android 6.0(API 级别 23)引入了低电耗模式,当用户设备未插接电源、处于静止状态且屏...

2019-02-12 10:01:14 2731

转载 Android 6.0 新特性和功能,系统和 API 行为更新

Android 6.0 API 更新(Android M、API Level 23)指纹身份验证此版本提供了一些新的 API,在受支持的设备上,用户只需扫描其指纹即可完成身份验证,这些 API 还可与 Android 密钥库系统结合使用。要通过指纹扫描验证用户身份,请获取新 FingerprintManager 类的实例,并调用 authenticate()方法。您的应用必须运行在带有指纹...

2019-02-09 15:03:49 1123

转载 Android 5.0 新特性和功能,系统和 API 行为变更

Android 5.0 API 变更(Android L、API Level 21)用户界面Material Design 支持Android 5.0 添加了对 Android 的新 Material Design 样式的支持。您可以创建具有 Material Design 功能的应用,实现动态视觉效果,利用其中的 UI 元素转换赋予用户自然的感觉。此支持包括:Material Des...

2019-02-03 09:44:12 657

转载 支付宝客户端架构分析:自动化日志收集及分析

看了这篇文章,主要可以的学习点:1、可以从静态和动态两个角度来看一下支付宝在客户端性能优化上面的实践;静态方面主要讲解了一些安全方面的文章,(见Android uid、gid与pid、Android Permission权限控制机制、Android APK签名机制、Selinux Android),安装包、存储、公共资源涉及比较少,动态方面之前用了系列文章讲解了内存方面的优化工作,(见Andr...

2018-12-04 23:30:17 1277

原创 移动和web对比以及对数据的思考

APP和WEB从宏观的角度上来看,都是为了给人呈现最好的互联网产品体验和互联网服务体验,互联网服务提供商也是需要通过提供好的产品和服务来获取报酬的。

2018-11-15 10:42:18 499

原创 Android安全机制(3) APK 签名机制

APK签名是Android APK安全的第一道防线,是Android APK身份的一个唯一标志

2018-11-10 11:37:49 2382

原创 程序员生存技能表(1)--通用技能

每个人都有自己的生命密码,学习此文可以让自己眼界更开阔一点,让自己活得更好一点,了解公司与个人的关系,个人定位,如何做事,团队与个人,个人成长,吃好,身材保持好会过得更好

2018-11-01 22:18:33 1281

原创 内存泄漏检测实战(1)

目录利用Android Studio的Android Profiler、MAT对Android进行内存泄漏检测前言Android Profiler & Memory Profiler & MATstep1,利用Memory Profiler dump指定应用的内存堆step2,重复操作以后,进行GC操作,dump指定应用的内存堆并保存起来step3,convert java hea...

2018-10-20 20:41:29 1439

转载 Activity的启动流程

Activity是Android中最重要的概念,没有之一。我之前写过 Android Tasks、ActivityStack和Activity,主要解释了一下Android Task和Activity这两个概念之间的关系,另外Android Task中包含了一个ActivityStack来管理Activity的关系,今天重新复习一下Activity的启动过程,是在理解Activity的路上往前更进...

2018-07-25 18:44:56 1494

原创 项目管理和软件开发的边界

程序员的人生就是和一个个的软件项目打交道的人生。不能管理好项目过程的程序员不是好的开发人员。项目管理是对成功地完成一整个软件项目过程中地一系列目标相关地活动(譬如任务)的整体监测和管控,软件开发是软件项目过程中最重要的一个组成部分之一。在互联网公司做项目,一边强调要敏捷开发,一边要交付成果。所以如何区分好项目管理和软件开发的边界,统筹好二者才是一个好的互联网项目管理和软件开发过程。

2017-10-21 16:21:21 5866

原创 Android hybrid 开发实践(android webview)

关于Android 和 h5 hybrid 开发的实践在网上有很多,Android自身就有一个webview,很多实践都是通过webview来实现的,以下是自己的实践

2017-08-13 17:39:15 766

转载 Android 自定义URL Scheme

在从URI看Mobile和Web数据一文中,我们讲到了Android的设计者们在Activity 中引入了URI,即通过自定义URL Scheme来定位一个页面,外部和内部应用可以通过一个uri非常方便的定位到Android的各个页面,下面就来看看Android URL Scheme for Activity

2017-07-25 21:28:30 3202

原创 从URI看Mobile和Web数据

我们在Mobile Analytics一文中分析了Mobile APP和Web APP最大的区别是对外的数据的呈现和分享的问题,今天就从URI的层面来看这个区别,毫无疑问,WWW是最开放的,通过http协议把内容放到网络上开启了人类的共享时代。移动应用(C/S应用)本来是非常不开放的一个资源,在Android时代,通过Android的设计者们引入了URI到Activity,和引入URI到ContentProvider。就像在封闭的房间里开了几扇窗户,在封闭的岛上开放了一些渡口。但是很遗憾这种开放也仅仅局限

2017-07-23 18:34:09 539

原创 Mobile Analytics(1)友盟

友盟是移动时代数据的先行者,通过对友盟来学习移动时代的数据需求。Mobile Analytics。

2017-07-16 11:42:34 683

原创 Web Analytics(2)理解web Analytics2.0

        写web Analytics是因为把web Analytics 2.0这本书看完了,觉得很不错,就想写点 web Analytics 2.0 这本书的读书笔记,后面就想起Piwik,那是我对数据分析的初识,所以就把第一篇web Analytics理解献给了Web Analytics(1)理解Piwik。现在这一篇就是来接着把web Analytics 2.0写完。1、看看例子...

2017-06-03 16:19:31 1823

原创 Web Analytics (1)理解piwik

2017年刚开始的时候,还是处于移动时代,因为过去几年智能手机的用户数目一直在高速发展。今年的 google IO大会上,Google 已经说了要从Mobile First转向AI First,随后是alpha go 以3:0击败了世界围棋冠军柯杰,宣告了智能时代的到来。那么,现在还来谈Web Analytics的事情,是不是有点太落伍了?当然不是,因为AI 时代不是突然出现的,而是从互联网时代走过来的。即便是如日中天的深度学习算法也是演进过来的

2017-05-30 17:37:19 2330

转载 阿里巴巴Java编码规范

这个规范发布有一段时间了,在网上也很火爆,最近团队在组织学习这个Java编码规范,是因为这个规范写得太好了。没事就可以拿出来看看阿里巴巴Java编码规范...

2017-05-01 11:29:18 1610

转载 机器学习在工业应用中的新思考

人工智能在学术界默默发展了很多很多年,从最早的神经网络,到10年前风靡的SVM、bagging and boosting,如今的深度学习。日新月异,各领风骚数几年。工业界的发展从最早应用于纯粹的互联网企业,近几年开始应用到更多更广泛的场景,而且发展速度越来越快,陈雨强一直在机器学习的最前沿应用,下面是他最新的思考,非常非常干货。是一篇值得多看几遍的好分享。10年前说自己是做人工智能的,大家都会一脸茫然,今天说自己是搞人工智能的,大家都会是一脸崇拜。可见火爆。

2017-04-23 13:27:24 10674 2

原创 Android Tasks、ActivityStack和Activity

最近又在开展一些Android的开发工作,出现了在个别场景下发生的Activity切换不符合预期的情况,于是来温习一下Android的Tasks、ActivityStack、Activity,以及影响到他们的几个重要参数launchMode、taskAffinity、IntentFlags 应用程序的进程与线程从应用程序的角度来看,应用程序一般定义了应用对应的进程,以及上面运行着的一系...

2017-03-26 14:21:05 3437

转载 友盟分享 | 移动大数据平台架构思想以及实践经验

2年前的文章,一直放在我的收藏夹里,今天看到了,放到这里来,是因为我觉得这个也是一篇干货。做数据采集容易遇到的几个问题,这里提到了。数据采集来后面要做的实时计算、离线计算,这里也说明了。不懂的人看了这个文章会对这一个数据采集系统有一个比较全面点的印象,那就是这东西很有道理。懂了的人就应该努力去践行。第一大段整体介绍了数据平台架构、和数据流水线;第二大段则从五个模块 数据采集、数据清洗、数据计算、数据存储、数据增值来介绍他们的实践。

2017-03-10 20:58:36 894

转载 数据采集与埋点简介之 代码埋点、可视化埋点与无痕埋点

博主做移动手机系统中的数据采集与埋点也有近两年,那段时间内一方面是集中在具体的开发和问题细节处理,另外一方面则是在把采集系统适配到不同的平台手机、平板、tv、车载的过程中,有Android和C++两个版本。有一天见到了“神策数据”的这篇博文,发现总结得太好了,有点相见恨晚的感觉。这篇文章里面阐述了一下数据采集的一些基本概念,介绍了一下代码埋点、可视化埋点、无痕埋点,后端埋点,并根据这几种埋点的适用场景阐述了一下博主的深刻的理解和认识

2017-03-04 23:01:49 34038 2

原创 Android 体系架构解读

1、引言  马上就2017年了,时间过得真快。最近学习了一下架构师相关的能力解析和整理了一下自己在应用软件架构、MVC、分层上面的理解(这个不仅仅是Android系统,也是windows客户端系统,也是web系统)掐指一算,我从11年末开始搞安卓到现在也5年了,在这期间做过好些个Android应用,也有幸在application framework里面倒腾过一阵子。Android相关的知识在...

2016-12-31 23:48:07 1853

原创 我理解的软件 架构模式,MVC和分层

缘起:作为程序员,很容易天天被业务追逐着,抽不开时间修炼。有一天突然停了一下,忽地就会有一种怅然的感觉,过去的那些日子我学到了什么?有人很认真地说自己有10年经验,有人笑说你不过是一年经验用了10年而已。

2016-12-03 00:22:11 4389

转载 架构师能力模型解析

搜架构的时候,看到的这篇文章,很喜欢。个人名校毕业N年,做了多年的一线工程师、设计师,从最早的CS客户端到BS端,做到Android端,搭建过那么多的系统。为什么还是觉得离一个好的架构师还有些远,看了这篇文章之后,对自己需要升级的技能点又有了更深的感悟。

2016-11-07 22:36:44 4764

原创 TextView canvas.drawText 超出长度后...

遇到一个代码中需要自己在代码中去处理canvas.drawText超出长度的问题,总结一下TextView超出长度后怎么做

2016-10-24 22:47:40 5955

翻译 Android 查看内存使用工具 (procstats)

对于应用开发来说,简单的看应用内存有没有问题,就可以使用这个工具procstats。跑上几个小时monkey,然后用工具dump一下就对内存的使用就了然于胸文章翻译自 http://source.android.com/devices/tech/debug/procstats.html简单了解一下这个工具,后面会再介绍一个腾讯的开源性能测试利器APT

2016-06-24 22:04:25 7231 1

转载 在不看任何数学公式的情况下理解傅里叶分析

傅里叶变换何等高大上的东西,只要用心去看的话,真的可以看懂的。--在不看任何数学公式的情况下理解傅里叶分析,人工智能、信号处理必备基础技能从我们出生,我们看到的世界都以时间贯穿,股票的走势、人的身高、汽车的轨迹都会随着时间发生改变。这种以时间作为参照来观察动态世界的方法我们称其为时域分析。而我们也想当然的认为,世间万物都在随着时间不停的改变,并且永远不会静止下来。但如果我告诉你,用另一种方法来观察世界的话,你会发现世界是永恒不变的,你会不会觉得我疯了?我没有疯,这个静止的世界就叫做频域。

2016-05-01 20:09:58 2290

转载 手机淘宝构架演化实践

李敏主要负责淘宝无线客户端和无线网站基础服务、购物主链路的架构、研发方面的工作。从09年开始参与手机淘宝研发团队的组建和线上产品研发,先后负责过无线部门的社区、会员、营销、交易等多条产品线的技术工作,构建和发展了阿里无线技术体系中包括交易链路、百亿级别高性能API网关、WebApp平台等多个重要技术产品,经历和见证了阿里巴巴无线从开始之初到成为日活上亿级别电商应用技术变迁和积累。

2016-04-17 20:08:33 1097

转载 线性代数的本质

线性代数的本质,怎么理解矩阵: 矩阵又是坐标系,又是变换。到底是坐标系,还是变换,已经说不清楚了,运动与实体在这里统一了,物质与意识的界限已经消失了,一切归于无法言说,无法定义了。

2015-11-08 21:46:53 5741 10

原创 Android安全机制(2) Android Permission权限控制机制

 1、概述         我们在Android安全机制(1)中介绍过基于UID和GID的Android进程隔离机制。 这是利用 Linux 已有的权限管理机制,通过为每一个 Application 分配不同的 uid 和 gid , 从而使得不同的 Application 之间的私有数据和访问( native 以及 java 层通过这种 sandbox 机制,都可以)达到隔离的目的 。 ...

2015-03-01 11:51:43 44323 2

原创 Android 安全机制(1)uid 、 gid 与 pid

1、概述       Android 安全机制来源于Linux,并且以Linux权限管理为基础,要了解Android的安全机制,需要从linux中的安全机制了解开始,而用户的权限管理又是linux安全机制的最基本的一个组成. Android的创新之处是在linux用户权限管理的基础之上创建了Android 进程的沙箱隔离机制. 2、linux中的用户(UID)、组(GID)、进程(PI...

2015-02-08 22:53:01 35840 2

原创 A/B测试与灰度发布

A/B测试与灰度发布的理论产品是多维度的,设计体验、交互体验、系统质量、运营支持等等,测试的目的是为了系统最终的交付,一套各方面都足够好的系统,而不是文档上定义的系统,系统是需要不断进化的。测试的质疑贯穿产品的设计到编码到最终的运营过程,并最终促使产品的改善,周而复始。符合互联网思维敏捷的本质。 1、A/B测试与灰度发布相关的一些术语1.1 桶测试(Bucket Tes...

2015-01-01 10:37:35 23115

转载 每个程序员都应该知道的8个Linux命令

每个程序员,在职业生涯的某个时刻,总会发现自己需要知道一些Linux方面的知识。我并不是说你应该成为一个Linux专家,我的意思是,当面对Linux命令行任务时,你应该能很熟练的完成。事实上,学会了下面8个命令,我基本上能完成任何需要完成的任务。注意:下面的每个命令都有十分丰富的文档说明。这篇文章并不是来详尽的展示每个命令的各种功用的。我在这里要讲的是这几个最常用的命令的最常见用法。如果你

2014-11-22 15:00:40 2000

原创 Android 内存优化技巧

 在之前的 Android 内存管理 &Memory Leak & OOM 分析 中,说到了Android的内存管理相关的原理,也能了解到Android Memory Leak 和 OOM为什么会发生。这次主要说说在编码和优化技巧层面,来预防Memory Leak的发生。对象都是有生命周期的,对象的生命周期有的是进程级别的,有的是Activity所在的生命周期,随Acti...

2014-11-22 14:48:42 10866

原创 Android 流量分析 tcpdump & wireshark

APP竞争已经白热化了,控制好自己Android应用的流量可以给用户一个良好的用户体验噢,给用户多一个不卸载的理由。Android 如何进行流量分析?用好tcpdump & wireshark这两个工具就好了。

2014-11-01 12:29:12 5193 2

Android自动化测试 robotium-solo-5.2.1 javadoc 样例

Android 自动化测试(5)<robotium> robotium-solo-5.2.1 javadoc 样例

2014-10-18

ApkInstallUnInstall

Android 自动化测试(1)如何安装和卸载一个应用

2014-09-23

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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