【android核心分析--转】教程文章相关的互联网学习教程文章

Android深入浅出之 AudioTrack分析【代码】【图】

Android深入浅出之Audio第一部分 AudioTrack分析一 目的本文的目的是通过从Audio系统来分析Android的代码,包括Android自定义的那套机制和一些常见类的使用,比如Thread,MemoryBase等。分析的流程是:l 先从API层对应的某个类开始,用户层先要有一个简单的使用流程。l 根据这个流程,一步步进入到JNI,服务层。在此过程中,碰到不熟悉或者第一次见到的类或者方法,都会解释。也就是深度优先的方法。1.1 分析工具分...

android之LoaderManager原理分析

一. LoaderManager的使用 LoaderManager用于异步加载数据,当然,它异步的实现依赖于AsyncTask的原理。如果不深究它的实现原理,这个LoaderManager的使用还是很简单的。我们只需要实现LoaderCallbacks类,然后调用getLoaderManager().initLoader()就可以了,执行加载数据的语句写在LoaderCallbacks类的onCreateLoader()方法中,如果加载完毕,我们可以在onLoadFinished()方法中获取相关的数据结果。具体代码如下:public cl...

分析Android APK-反编译修改打包【图】

2.2这个章节的主要作用就是,修改一个别人的app,在里边增加一段自己的广告代码。 2.2.1 UAA 编译修改,工具安装配置之前讲过,无需再赘述。我们找到了一款游戏app的apk,找到所在的apk,如图1 所示: 图1 点击 decompile 按钮,如图弹出编译的过程: 图2 在C:\UAA_v4.0-bin\Output\decompile\MagicDiamond_d 这个位置,找到了编译之后的源码。修改两处:1 ,新建目录smali\jingcheng\com\mapshop,拷贝一个文件进去,SysAppli...

Android View视图系统分析和Scroller和OverScroller分析【图】

Android View视图系统分析和Scroller和OverScroller分析View 视图分析 首先,我们知道。在Android中全部的视图资源(无论是Layout还是View),终于的父类都是View类。各式各样的Layout仅仅是对ViewGroup的一中特别的实现。各种View也仅仅是View的特别实现。而ViewGroup也是对于View的一种实现。所以说全部的View元素在根本上都是一样的。当然这并不等于说View == ViewGroup,就好比仅仅有ViewGroup才可以addView。 当然...

Android——FileOutputStream与openFileOutput()的区别分析【第一个用于文件存储,第二个用于SD卡存储】【转】【代码】

本文实例分析了Android编程中FileOutputStream与openFileOutput()的区别。分享给大家供大家参考,具体如下:openFileOutput()首先给大家介绍使用文件如何对数据进行存储,Activity提供了openFileOutput()方法可以用于把数据输出到文件中,具体的实现过程与在J2SE环境中保存数据到文件中是一样的。publicvoid save() {try {FileOutputStream outStream=this.openFileOutput("a.txt",Context.MODE_WORLD_READABLE);outStream.write(t...

Android内核源码bionic目录下的子目录arch-arm源码分析笔记

依旧是好记性不如烂笔头,今天需要学习的是arch-arm目录下的代码。首先我们先看一下inclue目录下的endian这个头文件我们主要是需要知道下面的几点知识。1、先看一下下面的代码的片段#if !defined __ARM_ARCH_5__ && !defined __ARM_ARCH_5T__ && !defined __ARM_ARCH_5TE__ && !defined __ARM_ARCH_5TEJ__ && !defined __ARM_ARCH_4T__ && !defined __ARM_ARCH_4__ 正如google上面的注释文本所说: REV与REV16在ARM5与ARM4...

源码分析篇 - Android绘制流程(三)requestLayout()与invalidate()流程分析【代码】

本文主要探讨能够触发performTraversals()执行的invalidate()、postInvalidate()和requestLayout()方法的流程。invalidate()和postInvalidate()能够触发View的重画,这两个方法最终会调用到performTraversals()中的performDraw()来完成重绘制,但是是否会执行onMeasure()和onLayout()过程要根据标志位的状况来决定;requesetLayout()方法也会调用到performTraversals()方法,但是只会执行measure和layout流程,不会调用到draw...

Android图片缓存分析(一)【代码】

Android中写应用时,经常会遇到加载图片的事,由于很多图片是网络上下载获取的,当我们进页面时,便会去网络下载图片,一两次可能没啥问题,但如果同一张图片每次都去网络拉取,不仅速度慢,更影响用户体验,同时会浪费用户的流量。基于此,很多人便想到了图片缓存的方法。现在比较普遍的图片缓存主要有以下几个步骤:一、从缓存中获取图片二、如果缓存中未获取图片,则从存储卡中获取三、如果存储卡中未获取图片,则从网络中获取 ...

android文件管理器需求分析之一【图】

(部分初稿)正在做一个android文件管理器,代码基本完成,但由于一直以来面向过程开发的,到后期代码量不断增大,Bug频繁出现,修改代码变得非常繁琐、困难。于是我想从需求分析开始重新对项目进行整合、编码。算是第一次写需求分析,必然会出现很多Bug,希望前辈们能给予一些建议,求大家给予修正或分享一些想法。文件管理器需求分析一、基本功能。1、文件操作:快捷目录,主页,收藏夹,多项选择,文件打开(点击文件时启动打开方...

Android <uses-sdk> 和 target 分析【图】

Android中<uses-sdk>属性和target属性分析 1. 概要 <uses-sdk> 用来描述该应用程序可以运行的最小和最大API级别,以及应用程序开发者设计期望运行的平台版本。通过在manifest清单文件中添加该属性,我们可以更好的控制应用在不同android系统版本上的安装和兼容性体验问题。 和 target 分析' src="" /> 和 target 分析' src="/upload/getfiles/default/2022/11/16/202211161033183...

android telephone 4.2 framework层分析

framework层的相关代码主要在GSMPhone、CallManager、GSMCallTracker、TelePhonyManager中。GSMPhone:与GSMPhone关联的主要是Phone.java、PhoneBase.java、GSMPhone.java。Phone作为基类,定义了25对Handler消息注册和注销的接口,而PhoneBase继承Phone实现了24对,还有一对在GSMPhone中实现,而GSMPhone继承了PhoneBase。如何管理Phone对象的呢?在应用层的PhoneApp中调用PhoneFactory的静态方法makeDefaultPhones创建Phone对象,...

【原创】源码角度分析Android的消息机制系列(五)——Looper的工作原理【代码】

ι 版权声明:本文为博主原创文章,未经博主允许不得转载。 Looper在Android的消息机制中就是用来进行消息循环的。它会不停地循环,去MessageQueue中查看是否有新消息,如果有消息就立刻处理该消息,否则就一直等待。Looper中有一个属性:staticfinal ThreadLocal<Looper> sThreadLocal = new ThreadLocal<Looper>();这也就解释了,前面我们所说的我们可以通过ThreadLocal实现Looper在线程中的存取。除此之外,还有两个属性需要注...

Android 7.0 ActivityManagerService(5) 广播(Broadcast)相关流程分析【代码】【图】

本篇博客旨在分析Android中广播相关的源码流程。一、基础知识 广播(Broadcast)是一种Android组件间的通信方式。 从本质上来看,广播信息的载体是intent。在这种通信机制下,发送intent的对象就是广播发送方,接收intent的对象就是广播接收者。 在Android中,为广播接收者定义了一个单独的组件:BroadcastReceiver。1 BroadcastReceiver的注册类型 在监听广播前,要将BroadcastReceiver注册到系统中。 BroadcastReceiver总体上...

Android 进阶 - Activity服务启动分析【代码】【图】

前面已经介绍了如何创建一个应用服务,如何创建一个系统服务,这里我把Android服务分为:应用服务(ActivityService),系统服务(SystemService),分类是否正确也不清楚,网上并没有资料明确定义,之所以这样分类,因为应用服务放在ActiveServices中管理,而系统服务放在ServiceManager中管理,两者存在明显的不同。由于Android设计时已经把中间层标准化了,我们实现一个服务时,只需要简单实现服务端(Native)和调用端(Proxy)...

Android4.0 Surface机制分析【代码】【图】

1. java层面的Surface 对于Surface我们的认识主要是android的类Surface, android的文档描述Surface是“Handle onto a raw buffer that is being managed by the screen compositor”,这个描述透漏出两个信息:首先,Surface是一个raw buffer的句柄,通过它去管理一个raw buffer,其次,Surface本身是由screen compositor来管理的。但是raw buffer具体是什么,screen compositor又是什么,Surface是如何管理一个raw buffe...