1. 根目录instruction:文件夹名内容art全新的ART运行环境bionic系统C库bootable系统启动引导代码build存放Android系统编译规则,以及generic等基础开发配置包。ctsAndroid 兼容性测试套件标准dalvikDalvik虚拟机developers开发者目录,包含构建App和一些demo代码development与应用成虚开发相关device设备相关配
转载 2023-08-23 12:11:09
125阅读
一、首先我是在win7下通过wubi安装的Ubuntu10.04 64位,wubi安装最多只能分配30g空间,如果需要编译Android则空间不够,可以参照https://help.ubuntu.com/community/ResizeandDuplicateWubiDisk 来分配更多的空间,需要注意的是一开始使用wubi安装可以只分配它默认的最小空间给Ubuntu,然后再根据上面的方
转载 2023-07-24 13:20:07
88阅读
在上篇文章中,介绍ANR产生的原因、ANR的分类以及ANR问题的分析。本篇文章接下来将从源码的角度来分析ANR产生的过程,首先介绍InputDispatcher Timeout产生的过程。在ANR产生时,最终都会调用到appNotResponding()方法,该方法在Android 7.0以前定义在ActivityManagerService.java类中,在Android 7.0中定义在AppE
有时候我们需要在源码环境中增加自己的应用或模块,随ROM一起发布。 下面讲述相关步骤: 1. 首先可以在SDK环境下进行编码设计(如果你的APP不涉及到emulator无法模拟的硬件的话) 2. 在SDK环境基本调试OK 3. 将源代码复制到 $Android_Src/packages/apps/目录下,假设你的模块为 MyApplication 4. 在MyApplication目录下新
转载 2023-09-12 20:02:19
143阅读
handler是我们android开发一定会用到的,如果说你没用到,那你还说是做android开发的,谁都不信,上帝也不会相信的,但是如果只停留在使用上,而不去分析内部实现,如果你去面试问你这个都不会,估计不太好吧,至少在面试官的影响中肯定是减分的.我们知道Handler里面会涉及到几个类,都说轮询也就是Looper,还有什么消息队列,就是MessageQueue,那么他们之间是什么关系呢? 那就
转载 11月前
23阅读
之前了解android的消息处理机制,但是源码看的少,现在把Looper,Handler,Message这几个类的源码分析一哈android的消息处理有三个核心类:Looper,Handler和Message。其实还有一个Message Queue(消息队列),但是MQ被封装到Looper里面了,我们不会直接与MQ打交道,因此我没将其作为核心类Looper源码:Looper的字面意思是“循环者”,
Looper不会停止的消息处理机Reference 4 Looper Source 4 Looper从字面上了解是“循环者”,也就是在不停的循环状态。所谓Looper线程就是循环工作的线程。在程序开发中我们经常会需要一个线程不断循环,一旦有新任务则执行,执行完继续等待下一个任务,这就是Looper。 这里请不要把Looper与线程之间的概念相混淆,Looper其实可以看作线程的一个功能。一个普通
前言:在Android源码中最常用到的Builder模式,就是AlertDialog.Builder,使用该Builder来构建复杂的AlertDialog对象。 首先来看使用方法:AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("Title").setMessage("Messa
转载 2023-09-08 09:35:35
80阅读
Android编译完成后,会在out文件夹中产生一个Android代码结构,我们将会详细为大家讲解这一代码结构,以方便大家学习。当我们在对Android操作系统进行编程后,会产生一个结构严密的Android代码结构,那么大家可以从这篇文章中对这一结构进行详细的分析,以此为参考,来加深大家对这一操作系统的认识,方便大家今后的开发。Android编译完成后,将在根目录中生成一个out文件夹,所有生成
在顺序表中,每个结点的存储地址是该结点在表中的位置的线性函数,是一种随机存取结构。顺序表是用向量实现的线性表,向量的下标可以看作结点的相对地址。在linux下,配置多个IP的话,通常是eth0.0.. eth0.1 ..eth0.x等等, 那么如果要配置大量的IP呢,这么配置也是可以的,但是繁琐,虽说这种情况很少。graph.h#pragma once #include"UFs
1、360新版特性界面源代码实现了360新版特性界面的效果,主要涉及到Qt的一些事件处理与自定义控件。但源码好像是c++。 2、aidl跨进程调用服务端onBind暴露,然后客户端bindService得到aidl对象 3、UI设计之 仿做蘑菇街UI设计 源码包含viewflipper 用来显示一个展示幻灯片banner 用到了OnGestureListener,OnTouch
一、概述对于每个安卓程序猿来说,图片的加载是最常见问题,不管是简单的单一图片还是炫酷的gif图片,大家都应注意的问题OOM,当然对于有点经验的人来说,在开发阶段就会注意这个问题了,解决措施也很简单,利用缓存策略LruCache和DisLruCash,在内存不足时清除缓存,当然这个方法需要自己去写一些ImageLoader,现在没人回自己去写这个了,因为有大神的杰作,就是本文的主人公Glide;二、
转载 2023-06-26 15:49:58
105阅读
背景Invalidate() 是 Android 中 View 的方法,通常我们使用它来完成UI的刷新,作用如果这个 View 可见那么 onDraw() 方法将在未来某个时间点被调用。问题invalidate() 会触发那些 view 的重绘,invalidate() 绘制流程是如何实现的?我们带着问题来从源码开始分析:源码分析一、View 与 ViewGroup 的层级在 Android
模板方法模式定义:defines the skeleton of an algorithm in a method, deferring some steps to subclasses. Template Method lets subclasses redefine certain steps of an algorithm without chang
Android 常用工具类源码大全 1、HttpUtils Http网络工具类,主要包括httpGet、httpPost以及http参数相关方法,以httpGet为例: static HttpResponse httpGet(HttpRequest request) static HttpResponse httpGet(java.lang.String httpUrl) static St
转载 9月前
40阅读
Android4.4设置源码分析(一):设置主界面与各模块之间的联系寻找一个apk入口最快捷的途径就是查找AndroidManifest.xml文件,设置的AndroidManifest.xml文件如下:<application android:label="@string/settings_label" android:icon="@mipmap/ic_launch
转载 2023-10-30 19:46:49
45阅读
前言之前用Android Studio开发了各式各样的APP,但那基本都是应用层应用,即便是通过设置android:sharedUserId="android.uid.system"将应用设为系统级应用,也始终有些美中不足,于是就有了本文正文aosp的源码根目录packages里面收录了设备出厂自带的各系统级应用 这里,新建一个dev文件夹作为外部开发的系统级应用项目存放目录,接下来就是开发一个A
转载 2023-06-26 11:10:00
76阅读
0. 系列文章汇总Android Handler消息机制01-Message源码学习Android Handler消息机制02-Looper源码学习Android Handler消息机制03-Message源码学习1.源码本文主要是对Looper类的源码进行解析学习,用于更深入的理解Handler消息机制 Looper的源码路径为:android.os.Looper1.2 典型案例如下展示了一个源
转载 2023-06-26 14:14:40
64阅读
文章目录1 源码下载2 源码编译、导入Studio3 遇到的问题1 mac 默认是不区分大小写的,所以需要分区去下载源码。2 解决 repo sync error: Exited sync due to fetch errors3 error: in `sync -f`: revision refs/tags/android-8.1.0_r1 in platform/art not found4
修改好之后就要编译了,screencap的编译是要在源码环境中进行的。将修改后的screencap.cpp文件替换源码中的原始文件,然后修改screencap的Android.mk文件,修改后的文件如下:LOCAL_PATH:= $(call my-dir)include $(CLEAR_VARS)LOCAL_SRC_FILES:= \screencap.cppLOCAL_SHARED_LIBRA
  • 1
  • 2
  • 3
  • 4
  • 5