首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏葬爱家族

    Android ContentProvider_2 源码解析

    源码分析 在上篇文章介绍 ContentResolver 时提到,外界(包括当前进程的其他组件)也无法直接访问 ContentProvider 的,而是需要通过ContentResolver来间接访问, 这一点我在 第 2 节 ConentProvider 的启动过程 会详细介绍 。 现在,我们先分析 ContentResolver#query(...) 的源码: 1.1 获取 IContentProvider 对象 源码中 ContentResolver#acquireProvider() 是抽象方法,具体实现在子类 ApplicationContentResolver 查询 todo ---- 2. 启动 ContentPrivider 的方法就是上面源码中的 installContentProviders(); 2、installContentProviders() 会初始化属于当前进程的 ContentProvider

    68430编辑于 2022-11-07
  • 来自专栏Android干货园

    2. Android_Jetpack组件---Lifecycles源码解析

    https://blog.csdn.net/lyhhj/article/details/91440191 ---- title: 2. Android_Jetpack组件—Lifecycles源码解析 date: 2019-06-11 15:14:58 1. 背景 上一篇我门对Jetpack组件中的Navigation做了介绍,并且对其做了源码分析,相信看过之后已经对此有了一定的了解,本篇文章我们会对Lifecycles进行使用及源码的介绍,还没看上篇的可以看一下 Android_Jetpack组件—Naviagtion源码解析 2. <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER

    92140发布于 2019-06-15
  • 来自专栏vivo互联网技术

    Android构建工具--AAPT2源码解析(一)

    一、什么是AAPT2Android开发过程中,我们通过Gradle命令,启动一个构建任务,最终会生成构建产物“APK”文件。 老版本的Android默认使用AAPT编译器进行资源编译,从Android Studio 3.0开始,AS默认开启了 AAPT2 作为资源编译的编译器,目前看来,AAPT2也是Android发展的主流趋势 ,学习AAPT2的工作原理可以帮助Android开发更好的掌握APK构建流程,从而帮助解决实际开发中遇到的问题。 AAPT2 的可执行文件随 Android SDK 的 Build Tools 一起发布,在Android Studio的build-tools文件夹中就包含AAPT2工具,目录为(SDK目录/build-tools 2.3 编译的源码 上文,我们学习了编译命令Compile的用法和编译产物FLAT文件的文件格式,接下来,我们通过查看代码,从源码层面来学习AAPT2的编译流程,本文源码地址。

    2.3K01发布于 2021-10-26
  • 来自专栏增长技术

    Android Studio查看Android源码

    下载源码 使用repo从源码仓库下载Source 从百度网盘下载别人下载好的Android5.0 编译源码 1. 进入Android 源码根目录 2. 执行 #这行命令的意思是生成对应的文件:android.iws, android.ipr, android.iml . sh . /development/tools/idegen/idegen.sh 导入到Android Studio 打开Android Studio,点击File>Open,选择刚刚生成的android.ipr

    2.9K20发布于 2018-09-06
  • 来自专栏全栈程序员必看

    Android layout_Android源码

    文章目录 LayoutParams源码分析 概述 LayoutParams基本用法 LayoutParams源码分析 LayoutParams源码分析 概述 LayoutParams是布局参数的意思,我们在 new TextView(this); textView1.setText("TextView1"); linearLayout.addView(textView1); TextView textView2 = new TextView(this); textView2.setText("TextView2"); textView2.setLayoutParams(new LinearLayout.LayoutParams setLayoutParams(new LinearLayout.LayoutParams(100, 100)); linearLayout.addView(textView3); LayoutParams源码分析 R.styleable.ViewGroup_MarginLayout_layout_width, R.styleable.ViewGroup_MarginLayout_layout_height); int margin = a.getDimensionPixelSize( com.android.internal.R.styleable.ViewGroup_MarginLayout_layout_margin

    71510编辑于 2022-11-08
  • 来自专栏小陈飞砖

    android源码(1)LiveData源码

    2、LiveData如何感知生命周期? 总结:首先看数据:LiveData中的 mObservers 和 LifecycleRegistry 中的 mObserverMap。 observer, statefulObserver); } 说白了就这两条线: 1、从 livedata 的 setValue()触发:使用mObservers中存储的observer更新数据; 2、 关键对象: 1、LiveData: 作为数据入口,维护观察者和被观察者的关系 2、Observer:数据改变后最终触发的函数,回调接口,调用端实现 3、LifecycleOwner: Activity sync(); //源码前面有 } mAddingObserverCounter--; } 4、LiveData数据设置 LiveData有两种方式设置数据 mVersion++; mData = value; dispatchingValue(null); //前面已经有了dispatchingValue的源码

    2.6K30编辑于 2022-06-25
  • 来自专栏yanlongli_艳龙

    Android 源码下载

    AOSP (Android Open Source Project) 参考文档:https://source.android.google.cn/setup/downloading 源码地址 安装 Repo 确保主目录下有一个 bin/ 目录,并且该目录包含在路径中: mkdir ~/bin PATH=~/bin:$PATH 2.下载 Repo 工具,并确保它可执行: curl https://storage.googleapis.com 为其指定一个您喜欢的任意名称: mkdir WORKING_DIRECTORY cd WORKING_DIRECTORY 2.运行 repo init 以获取最新版本的 Repo 及其最近的所有错误更正内容 repo init -u https://android.googlesource.com/platform/manifest 或 要对“master”以外的分支进行校验,请使用 -b 来指定相应分支 要查看分支列表,请参阅源代码标记和版本 repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1

    3.1K30编辑于 2021-12-16
  • 来自专栏Flutter入门

    SDL2库(4)-Android源码简要分析(AudioSubSystem)

    Android 部分源码分析 Android部分的初始化和视频部分基本相同。 这里简单看一下。 在SDLActivity中调用了 SDL.setupJNI()。 (ANDROID_LOG_VERBOSE, "SDL", "AUDIO nativeSetupJNI()"); Android_JNI_SetupThread(); mAudioManagerClass midCaptureClose) { __android_log_print(ANDROID_LOG_WARN, "SDL", "Missing some Java callbacks, // Ref: http://developer.android.com/reference/android/media/AudioTrack.html#getState() PlayDevice.png 该方法,实际上是调用了Android_JNI_WriteAudioBuffer(SDL_android.c)方法。

    1.1K30发布于 2018-12-14
  • 来自专栏全栈程序员必看

    Android源码学习之环境搭建(Ubuntu下载Android源码

    趁现在有时间来研究下Android源码。之前没有接触过Linux系统,我的本本现在用的是Windows系统,已经用习惯了。 接下来说重点,Ubuntu上下载Android源码。 特别提醒:Android下载,编译时要确保系统的内存在1.2GM以上,且有足够的硬盘可用空间,否则会编译失败终止。 现在整个源码下载完大概在15G左右,在加上编译的,所以安装虚拟机时硬盘空间最好在35G-45G(个人建议),我就吃了这的亏,没仔细看说明,就下载,下暴了Ubuntu虚拟硬盘,系统都进不去。 1、安装git和curl 进入Linux ,打开终端,在终端窗口敲下面的命令: sudo apt-get install git-core curl 2、安装repo脚本 首先安装repo Google官网重新下载 repo (1) curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo (2)

    99120编辑于 2022-08-23
  • 来自专栏拭心的安卓进阶之路

    Android 框架学习2源码分析 EventBus 3.0 如何实现事件总线

    >(); //记录每个类中的订阅方法信息 putIndex(new SimpleSubscriberInfo(net.sxkeji.shixinandroiddemo2. 总结 本篇文章根据源码详细地了解了 EventBus 3.0 的源码,经过前面对源码的分析,现在看这个类图理解了吧: ? 读源码最好是打着断点走一遍,然后边走边写注释,最后整理成文章。 带有注释的源码地址 Thanks 本来打算自己画流程图和类图的,但发现前辈画的已经很完美的,而且我也有点困,就借用一下吧 -。-。 最后类图引用自 EventBus 源码解析,表示感谢!

    1.7K50发布于 2018-01-05
  • 来自专栏icecream小屋

    清华大学Android源码镜像下载最新Android系统源码

    下载最新Android系统源码,可以在国内的清华大学Android源码镜像下载,速度也是挺快的。我晚上几个小时就下载下来了。 PATH curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo chmod a+x ~/bin/repo (2) AOSP 工程目录 # 这时 ls 的话什么也看不到,因为只有一个隐藏的 .repo 目录 repo sync # 正常同步一遍即可得到完整目录(因为已经下载了大部分,更新很快) 这样,就得到了最新的android 镜像源码,我获取到的为:7.0的android源码。 可以通过查看:build/core/version_defaults.mk查看当前的android系统的版本号

    3.7K10发布于 2019-12-26
  • 来自专栏Flutter入门

    SDL2库(3)-Android源码简要分析(VideoSubSystem)参考

    SDL.png 项目位置 https://github.com/deepsadness/SDLCmakeDemo 系列内容导读 SDL2-移植Android Studio+CMakeList集成 Android 端FFmpeg +SDL2的简单播放器 SDL2 Android端的简要分析 Android 部分源码分析 暂时只包括视频系统的部分。 Android上SDLThread启动初始化 2.SDL初始化 SDL_Init(): 初始化SDL。 SDL_CreateWindow(): 创建窗口(Window)。 https://bitbucket.org/MartinFelis/love-android-sdl2/issue/23/release-build-crash-on-start Android_Available Android_Available方法总是返回1,表示可用。因为只有编译在Android平台时,才会去初始化这个Android_bootstrap。

    3.3K40发布于 2018-12-14
  • 来自专栏深入理解Android

    Android Gradle源码分析

    一.如何调试Android Gradle源码 最简单的方式如下: 1.配置 gradle.properties 比较方便的做法是配置全局的 gradle.properties,这样对所有 Gradle :gradle:3.5.0' } 这样就引入了源码,想看对应版本的源码,改变相应的引用即可 保持和classpath声明的一致 classpath 'com.android.tools.build: /gradlew assembleDebug 二.Gralde Plugin源码分析 平时我们使用plugin都是通过apply方法,例如: apply plugin: 'com.android.application ' 所以我们就从apply方法入手 1.AppPlugin#apply 从上面得知 ‘com.android.application’ 对应com.android.build.gradle.AppPlugin ) projects though, so this should support // being called 2+ times.

    1.6K20编辑于 2022-06-23
  • 来自专栏双十二技术哥

    Android LayoutInflater 源码解析

    在上篇文章中我们学习了setContentView的源码,还记得其中的LayoutInflater吗?本篇文章就来学习下LayoutInflater。 resId) { ensureSubDecor(); ViewGroup contentParent = (ViewGroup) mSubDecor.findViewById(android.R.id.content 备注:以下源码中有七条备注。 = null) { // ① 有mFactory2,则调用mFactory2的onCreateView方法 view = mFactory2 则说明是系统控件,会在接下来的调用链在name前面加上 'android.view.'

    1.1K40发布于 2018-08-21
  • 来自专栏我的Android开源之旅

    Android源码分析--Android系统启动

    Android系统启动 其实Android系统的启动最主要的内容无非是init、Zygote、SystemServer这三个进程的启动,他们一起构成的铁三角是Android系统的基础。 init进程的源码在system/core/init/init.cpp`下。 com.android.launcher3.Launcher",点击查看Launcher的AndroidManifest.xml。 启动架构示意图 我们都知道Android系统架构是Linux Kernel、Android Runtime、Liberaries、Application Framework和Application这五个部分组成的 ,如下图所示: 那么Android系统在启动过程中,都经历了哪些架构组成部分呢?

    55420编辑于 2022-04-18
  • 来自专栏程序员开发工具

    Android livedata 源码解剖

    说在前面 本次推出 Android Architecture Components 系列文章,目前写好了四篇,主要是关于 lifecycle,livedata 的使用和源码分析,其余的 Navigation Android lifecycle 使用详解 Android LiveData 使用详解 Android lifecyle 源码解剖 Android livedata 源码解剖 github sample 地址: ArchiteComponentsSample Android 技术人,一位不羁的码农。 题外话 Android Architecture Components 已经写了四篇文章了,其余的 Navigation, Paging library,Room,WorkMannager 等春节结束之后再更新了

    1.3K20发布于 2019-02-26
  • 来自专栏闷骚的程序员

    Android 源码分析开篇

    : The Big Nert Ranch Guide》 《疯狂 Java 讲义》 《疯狂 Android 讲义》 《Android 软件安全与逆向分析》 《深入理解 Java 虚拟机》 《Android 业务相关的知识可以在工作时间来积累,业余的时间里,多 Read The F*cking Source Code,从优秀的源码和设计里汲取营养。 所以,最近计划开始写一系列 Android 源码分析的文章,包括 Android 系统源码及一些优秀的第三方类库等等。 目前的计划是按照我最近一段时间更新公众号的频率,大约十天更新一篇,阅读源码主要使用的工具和方式是: GitHub 上的 android/platform_frameworks_base 等源码配合 Chrome 插件 insight.io 自己电脑上搭建的 OpenGrok 浏览 Android 7.1.2 源码 http://androidxref.com/7.1.1_r6/ 大致思路就是这样,实践一阵试试

    1.1K10发布于 2020-04-16
  • 来自专栏程序员开发工具

    Android lifecyle 源码解剖

    说在前面 本次推出 Android Architecture Components 系列文章,目前写好了四篇,主要是关于 lifecycle,livedata 的使用和源码分析,其余的 Navigation <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="android.arch.lifecycle.extensions " > <uses-sdk android:minSdkVersion="14" /> <application> <provider android }.lifecycle-trojan" android:exported="false" android:multiprocess="true" /> 下一篇:Android livedata 源码解剖

    1.2K20发布于 2019-02-26
  • 来自专栏米扑专栏

    Android 源码结构分析

    bsd的源码) |   |-- i386          (i386架构) |   |-- i387          (i387架构?) ) |-- libstdc++         (libstdc++ C++实现库) |   |-- include       (头文件) |   `-- src           (源码 server) |-- e2fsprogs    (EXT2文件系统工具) |-- elfcopy   (复制ELF的工具) |-- elfutils        (genext2fs generates an ext2 filesystem as a normal (non-root) user) |-- giflib    源代码简要分析 Android 源码结构分析PDF下载

    2.4K30发布于 2019-02-19
  • 来自专栏双十二技术哥

    Android setContentView源码解析

    Android开发的同学们对setContentView肯定都不陌生,但凡写到Activity,都离不开这个函数,今天我们就来看看它内部的实现吧! 备注:本文基于Android 8.1.0版本。 1、Activity 与 AppCompatActivity的区别 当我们在老版本Android SDK开发的时候新建的Project的默认继承的是Activity,而在5.0之后默认继承的就是AppCompatActivity * *

    You can add an {@link android.support.v7.app.ActionBar} to your activity when running on API 2、setContentView AppCompatActivity中的setContentView也非常简洁,可以看出来需要去代理类中继续查看代码。 mOriginalWindowCallback.onContentChanged(); } 3、createSubDecor setContentView的第一步就是确保SubDecor被install,下面源码中有注释

    1.2K40发布于 2018-08-21
领券