android源码
jamikabin
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Android WebView LoadUrl过程
请从文章最后往前看这个过程只包含从java层调用到C++层的代码,至于如何获取到网络数据并加载到页面上并没有涉及。本文只记录了loadurl的过程,源码基于android 4.2.2#0 MessageLoop::PostTask#1android::WebUrlLoaderClient::start#2 android::WebUrlLoader::s原创 2014-01-22 12:10:02 · 5785 阅读 · 0 评论 -
深入理解Activity启动流程(二)–Activity启动相关类的类图
在介绍Activity的详细启动流程之前,先为大家介绍Activity启动时涉及到的类,这样大家可以有大概的了解,不至于在细节中迷失。Activity启动时涉及到的类有IActivityManager相关类, IApplicationThread 相关类, ActivityManagerService 相关类。IActivityManager相关类 Activity的管理采用binder机制,管理转载 2016-12-22 20:55:08 · 612 阅读 · 0 评论 -
深入理解Activity启动流程(三)–Activity启动的详细流程1
本篇博客将开始介绍Activity启动的详细流程,由于详细启动流程非常复杂,故此分成两篇来介绍。本篇主要介绍前半部分的启动流程:Activity调用ActivityManagerService启动应用ActivityManagerService调用Zygote孵化应用进程Zygote孵化应用进程 下篇介绍后半部分的启动流程:新进程启动ActivityThread应用进程绑定到Activi转载 2016-12-22 21:10:34 · 508 阅读 · 0 评论 -
深入理解Activity启动流程(三)–Activity启动的详细流程2
上篇博客介绍了Activity详细启动流程的前半部分:Activity调用ActivityManagerService启动应用ActivityManagerService调用Zygote孵化应用进程Zygote孵化应用进程 本篇博客主要介绍Activity详细启动流程的后半部分:新进程启动ActivityThread应用进程绑定到ActivityManagerServiceActivi转载 2016-12-22 21:32:59 · 725 阅读 · 0 评论 -
深入理解Activity启动流程(四)–Activity Task的调度算法
前面两篇博客介绍了Activity的详细启动流程,提到ActivityStack类的startActivityUncheckedLocked方法负责调度ActivityRecord和Task,并且调度算法非常复杂,需结合实际场景分析调度算法。本篇博客将介绍startActivityUncheckedLocked方法的具体实现,本结合实际场景分析调度算法。startActivityUncheckedL转载 2016-12-22 21:38:41 · 792 阅读 · 0 评论 -
Android Configuration UIMode
UIMode是当前UI模式 桌面,汽车,TV,手表 白天,夜间等参考如下代码:// Configuration.java switch ((uiMode&UI_MODE_TYPE_MASK)) { case UI_MODE_TYPE_UNDEFINED: sb.append(" ?uimode"); break; case UI_MODE_原创 2016-12-23 12:20:35 · 5823 阅读 · 1 评论 -
Android dump的使用2
由于dumpsys命令只能dump出有限的几个service,例如SurfaceFlin原创 2014-05-21 22:16:29 · 5562 阅读 · 0 评论 -
Android dump的使用1
android源码中很多service提供了dump函数,并会输出当前的状态。如何使用dump函数就是这篇文档要做的事儿首先,进入adb shell 第二,执行dumpsys –help 这样就能了解dumpsys命令的基本用法255|generic_x86_64:/ # dumpsys --helpusage: dumpsys To dump all ser原创 2017-01-05 12:19:27 · 11742 阅读 · 0 评论 -
Android 7.0 SystemUI Recent浅析
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~最近Task模块Recents extends SystemUIstart进行初始化~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~BaseStatusBar中如下函数显示最近task protected void toggleRecents() {原创 2016-12-20 17:52:58 · 5740 阅读 · 0 评论 -
Android BluetoothAdapter
本文基于android 7.0代码BluetoothAdapterframeworks/base/core/java/android/bluetooth/BluetoothAdapter.java提供了7个状态值 /** * Indicates the local Bluetooth adapter is off. */ public static final in原创 2017-01-18 17:51:20 · 1168 阅读 · 0 评论 -
system-api.txt:27075: error 13 has added 'final' qualifier
修改android N源码过程中如果修改了原始的api导致编译出现如下错误,解决方法是让prebuilts/sdk/system-api/25.txt中的声明和frameworks/base/api/system-current.txt或者current.txt保持一致错误log如下:FAILED: /bin/bash -c "(( out/host/linux-x86/bin/apicheck -原创 2017-12-19 20:43:57 · 1370 阅读 · 1 评论 -
framework_intermediates/classes.jar: unknown package name of class file
编译android源码时如果出现标题类似错误 需要到build/core/tasks/check_boot_jars/package_whitelist.txt 文件中追加对应的类或者包原创 2017-12-19 20:59:26 · 1891 阅读 · 0 评论 -
android编译中的BUILD_JAVA_LIBRARY
android编译中经常用到编译jar文件的常量 BUILD_JAVA_LIBRARY 他的定义在 build/core/config.mk中 BUILD_JAVA_LIBRARY:= $(BUILD_SYSTEM)/java_library.mk其他几个也是类似的定义 把BUILD_去掉 后面变成小写java_library.mk 就是对应的实现BUILD_HOST_STATIC_L原创 2017-12-14 20:34:00 · 3190 阅读 · 0 评论 -
dump AndroidManifest.xml from APK file
aapt dump xmltree XXX.apk AndroidManifest.xml aapt dump xmltree XXX.apk AndroidManifest.xml > ttt.txt原创 2018-02-09 15:20:25 · 662 阅读 · 0 评论 -
LOCAL_CERTIFICATE作用
用于设置不同的签名方式build/target/product/security目录中有四组默认签名供Android.mk在编译APK使用:1、testkey:普通APK,默认情况下使用。2、platform:该APK完成一些系统的核心功能。经过对系统中存在的文件夹的访问测试,这种方式编译出来的APK所在进程的UID为system。3、shared:该APK需要和home/contacts...原创 2019-01-05 15:06:42 · 19473 阅读 · 0 评论 -
关于android:sharedUserId
作用是多个app进程共享数据多个app设置成相同的user idandroid:sharedUserId=“android.uid.system” 系统级进程android:sharedUserId=“com.example” 普通共享app具体参考如下文章:https://blog.youkuaiyun.com/jiangwei0910410003/article/details/51316688...原创 2019-01-05 15:20:58 · 1270 阅读 · 0 评论 -
签名系统apk命令
java -jar out/host/linux-x86/framework/signapk.jar build/target/product/security/platform.x509.pem build/target/product/security/platform.pk8 input.apk output.apk原创 2019-01-11 17:36:38 · 660 阅读 · 0 评论 -
深入理解Activity启动流程(一)–Activity启动的概要流程
**概述**Android中启动某个Activity,将先启动Activity所在的应用。应用启动时会启动一个以应用包名为进程名的进程,该进程有一个主线程,叫ActivityThread,也叫做UI线程。本系列博客将详细阐述Activity的启动流程,这些博客基于Cm 10.1源码研究。Activity启动时的概要交互流程用户从Launcher程序点击应用图标可启动应用的入口Activity,Act转载 2016-12-22 20:45:13 · 528 阅读 · 0 评论 -
IActivityManager ActivityManagerNative ActivityManagerService之间如何进行工作
总结:IActivityManager调用函数最终会调用ActivityManagerService中的对应实现IActivityManager 定义的接口。 app侧的proxy <—->ActivityManagerProxy 比如IActivityManager定义接口startActivityFromRecentsclass ActivityManagerProxy implements原创 2016-12-21 15:59:47 · 3623 阅读 · 1 评论 -
从Android源码编译生成的so文件查找源码
从android源码路径运行如下命令find . -iname "*.mk" |xargs grep LOCAL_MODULE > moudule.txt此命令意思是搜索所有mk文件,然后再对结果搜索关键字LOCAL_MODULE,最后将结果输出到moudule.txt输出后moudule.txt的位置就是你执行命令的路径。moudule.txt中会有【LOCAL_MODULE原创 2014-01-15 10:55:33 · 2806 阅读 · 0 评论 -
apktool
android apk可以用apktool解压,解压后是类似如下的目录结构其中assets就是资源文件的路径了lib中包含.so文件,是C或者C++编译生成的动态链接库res是资源文件smali里面就是赤裸裸的源码了虽然说是赤裸裸,但其实毕竟是反编译出来的,很多类文件在apk之前打包过程中经过了混淆,变成了看不懂的a b c......下面说一下原创 2014-01-22 16:20:33 · 829 阅读 · 0 评论 -
android vold.fstab的生成过程
本文是基于android4.2.2的代码进行的调查分析,其他版本的android代码可能类似,但不一定会相同。模拟器中/system/etc/目录下本应该有一个文件叫vold.fstab,但是某些情况下这个文件会缺失那么这个文件是如何生成到system.img中的呢,下面我们来详细解释一下。首先,在system/core/rootdir/etc/目录下有一个文件叫做vold原创 2014-01-27 15:25:51 · 10882 阅读 · 1 评论 -
android emulator -skin选项对应皮肤位置
android emulator -skin选项对应皮肤位置development/tools/emulator/skins基于android4.2.2代码,其他版本androidskin是否在这个路径没有调查过原创 2014-01-28 13:54:42 · 1651 阅读 · 0 评论 -
Android build.prop生成
Android build.prop位于out/target/product/generic/system/build.prop文件中记录了部分System.getProperty()可以获取的属性值android app开发中可以使用android.os.Build.VERSION.SDK获取sdk version这个值就记录在build.prop中,那么这个文件是如何生成的原创 2014-01-20 17:47:05 · 1137 阅读 · 0 评论 -
emulator window was out of view and was recentered
emulator: emulator window was out of view and was recentered这个问题,可以用“-scale auto”解决!原创 2014-04-14 21:34:08 · 3249 阅读 · 1 评论 -
Android NavigationBar中虚拟键调查
NavigationBar调查NavigationBar是Android4.0以后出现的新特性,下图2就是NavigationBar,其中包括Back, Home, Recent键。并且对于基于2.3或者更早的版本的app,会在右下角显示一个Menu。这几个键都是虚拟的按键,对于没有实体键的手机或者tablet相当的方便。 NavigationBar的显示与隐藏Navigation原创 2014-04-15 16:43:31 · 8055 阅读 · 3 评论 -
Notification数据结构和功能处理流程分析
Notification简介 Notification的数据结构封装为3个类,Notification,NotificationRecord和StatusBarNotification。Notification是提供给App层创建Notification使用的数据结构。Notification包含title,icon,discription等内容。NotificationRecor原创 2014-04-04 17:39:03 · 3477 阅读 · 0 评论 -
代码注释中的aka
// FREE indicates that the buffer is not currently being used and // will not be used in the future until it gets dequeued and // subsequently queued by the client.原创 2014-04-26 16:12:15 · 896 阅读 · 0 评论 -
android init.rc路径问题
android init.rc是android启动入口那么原创 2014-08-20 19:47:27 · 9397 阅读 · 1 评论 -
Android Public Directory
Android Public Directory就是android系统启动时创建的/sdcard目录下的如下几个目录Alarms\DCIM\Download\Movies\Music\Notifications\Pictures\Podcasts\Ringtones\这9个目录的创建代码在packages/providers/MediaPro原创 2014-08-20 19:35:07 · 1321 阅读 · 0 评论 -
Android手机分辨率基础知识(DPI,DIP计算)
转载自:http://blog.youkuaiyun.com/moruite/article/details/60285471.术语和概念术语说明备注Screen size(屏幕尺寸)指的是手机实际的物理尺寸,比如常用的2.8英寸,3.2英寸,3.5英寸,3.7英寸摩托罗拉milestone手机是3.7转载 2015-02-05 20:28:14 · 667 阅读 · 0 评论 -
JNI入门介绍
Java类型和本地类型对应 在如下情况下,需 要在本地方法中应用java对象的引用,就会用到类型之间的转换: 1)java方法里面将参数传入本地方法; 2)在本地方法里面创建java对象; 3)在本地方法里面return结果给java程序。 分为如下两种情况: Java原始类型 像 booleans、integers、floats等从Java程序中传到转载 2015-03-10 15:08:24 · 477 阅读 · 0 评论 -
BadTokenException
(一)android.view.WindowManager$BadTokenException: Unable to add window — token null is not for an application如果是这种错误,说明context使用了getApplicationContext(),请换成Activity.this(二)BadTokenException原创 2015-04-02 13:53:15 · 825 阅读 · 0 评论 -
Android下打印调试堆栈方法
转载自http://blog.youkuaiyun.com/freshui/article/details/9456889打印堆栈是调试的常用方法,一般在系统异常时,我们可以将异常情况下的堆栈打印出来,这样十分方便错误查找。实际上还有另外一个非常有用的功能:分析代码的行为。android代码太过庞大复杂了,完全的静态分析经常是无从下手,因此通过打印堆栈的动态分析也十分必要。转载 2014-12-15 16:02:48 · 490 阅读 · 0 评论 -
Android7.0 SystemUI StatusBar和Notification代码浅析
SystemUI代码结构比Launcher2代码要复杂很多 下面的分析也主要是贴代码,备注给自己,以免以后忘记~~~~~~~~~~~~~~~~~~~~~~~~~~~~~* 程序入口 * 系统会启动SystemUIService SystemUIService->onCreateSystemUIApplication->startServicesIfNeeded() 创建所有SystemUI为原创 2016-12-08 10:36:15 · 11723 阅读 · 1 评论 -
android bootanimation启动和关闭
启动frameworks/base/cmds/bootanimation/bootanim.rcservice bootanim /system/bin/bootanimation关闭WindowManagerService.javaperformEnableScreen()try { IBinder surfaceFlinger = Servi...原创 2019-04-01 12:26:55 · 1966 阅读 · 0 评论
分享