Google官方Android开发资料整理之-安全
本篇主要整理谷歌官方关于Android的安全资料 App security best practices | Android Developers Security tips | Android Developers Mitigate security risks in your app Mitigate security risks in your app | Android Developers Content resolvers | Android Developers Intent redirection | Android Developers Hardcoded Cryptographic Secrets | Android Developers Log info disclosure | Android Developers Path traversal | Android Developers Pending intents | Android Developers Sticky Broadcasts | Android...
Google官方Android开发资料整理之-性能优化详解
本篇整理谷歌官方关于Android开发性能的资料。 Guide to app performance | Android Developers Inspecting performance Inspecting performance | Android Developers The Android Profiler | Android Developers Profiling and tracing System tracing Overview of system tracing | Android Developers Capture trace The Android Profiler | Android Developers Capture a system trace on a device | Android Developers Capture a system trace on the command line | Android Developers Navigate a Systrace report | Android...
Google官方Android开发资料整理之-性能优化工具使用
对于Android开发,谷歌的开发者网站非常友好,里面有非常全面的开发资料,其实很多博客的资料都是来源于官方,但是相对没有官方全面,因此为了系统的学习官方的资料,本篇开始整理官方的一些Android开发资料。 Google官方资料 Profile your app performance | Android Studio | Android Developers Inspect CPU Activity Inspect CPU activity with CPU Profiler | Android Studio | Android Developers Record traces | Android Studio | Android Developers Export traces | Android Studio | Android Developers Import traces | Android Studio | Android Developers Inspect traces | Android Studio | Android...
Android系统源码分析--Service启动流程
在前面文章我们分析了四大组件中的两个:Broadcast和Activity,这章我们分析四大组件中的服务(Service)的启动过程。Service的启动方式有两种:一种是startService,一种是bindService;第一种通常是开启一个服务执行后台任务,不进行通信,第二章通过是启动服务进行通信。下面我们就根据这两种启动方式来讲Service的启动流程以及unbindService和stopService流程。 Service启动流程-startService首先来看启动流程时序图: Step0.ContextImpl.startService12345@Overridepublic ComponentName startService(Intent service) { warnIfCallingFromSystemProcess(); return startServiceCommon(service,...
Android系统源码分析--Activity的finish过程
上一篇我们分析了Activity的启动流程,由于代码量很大,还是没有分析的很详细,但是基本流程都出来了,更详细的东西还是要去看源码,源码在我文章的最后有给出,里面有我添加的详细的注释。这一章来分析Activity的finish过程,这个问题在两年前我去面试金山的时候曾经被问到过,那时候对源码基本没什么了解,所以当时根本是不了解的,今天我们就来分析一下finish的过程到底做了哪些处理,最后对Activity的整个启动过程以及finish过程绘制流程图,以方便我们记忆。 finish代码分析首先先贴一张时序图: Activity的finish方法就是调用的父类的finish方法: Step1.Activity.finish123public void finish() { ...
Android系统源码分析--Activity启动过程
关于Activity的源码分析拖延了太久的时间,由于最近工作繁忙,加上Activity启动源码非常复杂,涉及的内容很多,所以花费了很长是时间才来写这篇源码分析,希望这篇分析能让我们很容易的理解Activity的启动流程,能解决我们在使用Activity过程中遇到的问题,这样就达到了我们对于源码分析的目的了。下一篇我们介绍Activity的finish过程。 Activity启动模式简介:我们知道Activity启动模式有四种,每一种都有不同的操作,直接影响我们App的设计,为了帮助我们理解源码,我们先分析一下这四种模式。这四种模式包括:standard, singleTop, singleTask 和 singleInstance。 (下面内容来自:Activity启动模式图文详解:standard, singleTop, singleTask 以及...
Android系统源码分析--Broadcast发送
上一篇分析了Android系统中广播的注册和注销,这一篇我们继续分析发送广播的源码流程,广播的发送相对来说比较复杂,所以需要比较长的时间来看,如果你看懂了流程相对来说再研究流程中的细节就比较简单了。 先看一张时序图,因为里面涉及到循环过程,代码中会提到,但是时序图没有绘制,所以需要注意一下。 0、ContextImpl.sendBroadcast123456789101112131415161718192021222324252627282930313233343536373839/** * 发送广播 * 步骤: * 1.广播发送者,即一个Activity组件或者一个Service组件,将一个特定类型的广播发送给AMS * <p> * 2.AMS接收到一个广播后,首先找到与这个广播对应的广播接收者,然后将它们添加到一个广播调度队列中, * 最后向AMS所运行在的先从的消息队列发送一个类型为BROADCAST_INTENT_MSG的消息,这时候对广播发送 * 者来说,一个广播就发送完了。 * <p>...