- 博客(24)
- 收藏
- 关注
原创 siminfo表格解析
位于data/user_de/0/com.android.providers.telephony/databases/telephony.db。content query --uri content://telephony/carriers //查询carrier表格。1>导出telephony.db用数据库工具查看。SubscriptionInfo中常用方法。content 命令帮助(增删改查)3>. 使用content命令查询。工具推荐使用SQLiteSpy。2>使用sqllite3 查看。
2023-11-13 10:05:10
299
原创 android View使用及源码分析
if (!//子类ListenerInfo点击按钮的堆栈打印如下查看View中的performClick,源码如下。。。if (li!= null) {//调用onClick} else {//对应setOnFocusChangeListener//对应addOnLayoutChangeListener//对应setOnScrollChangeListener。
2023-09-14 09:35:44
329
原创 android 广播源码分析
源码逻辑与sendBroadcast 相似,调用到ActivityManagerService中的registerReceiver。源码路径/frameworks/base/core/java/android/content/后续逻辑参考https://www.jianshu.com/p/adc4faa000b9。ActivityManagerService中的broadcastIntent。源码中为调用ContextImpl中的sendBroadcast ,源码如下。一.android中使用。
2023-09-14 09:28:27
240
原创 Handler源码分析
2>通过Handler类的obtainMessage获取,实际也是调用Message中的obtain方法,区别在于此时的handler为它本身。代码路径:framework/base/core/java/android/os/发送消息时调用RegistrantList中的 notifyRegistrants。查看MessageQueue中的enqueueMessage,主要逻辑如下。在继承Handler的类中重写handleMessage方法。调用Handler类中的sendMessage发送。
2023-08-21 15:32:18
170
1
原创 Ethernet framework层分析
由http://aospxref.com/android-10.0.0_r47/xref/frameworks/base/services/java/com/android/server/SystemServer.java#1387创建。由http://aospxref.com/android-10.0.0_r47/xref/frameworks/base/services/java/com/android/server/SystemServer.java#1316创建。网络检测/评分与网络选择。
2023-08-16 21:16:38
408
1
原创 SettingsProvider分析
相关命令:adb shell settings get/put global/system/secure //获取 ,设置adb shell settings list global/system/secure //获取所有。
2023-08-16 16:36:29
161
1
原创 api接口总结
INetworkManagementService为NetworkManagementService,需使用services.jar。需要使用telephony-ext.jar ,使用系统app或者Settings添加广播接收器。
2023-08-16 16:23:35
253
1
原创 SystemUI源码分析之状态栏
config_systemUIServiceComponents位于/frameworks/base/packages/SystemUI/res/values/config.xml,定义了各个activity,这些activity 均继承SystemUI.java。添加的icon定义在/frameworks/base/core/res/res/values/config.xml中的config_statusBarIcons,总共32个。查看StatusBar的start方法,重点关注下面逻辑。
2023-08-16 09:00:55
376
1
原创 Settings界面分析
Settings.java总共有124个子类,继承SettingsActivity,SettingsActivity继承SettingsDrawerActivity,查看SettingsDrawerActivity,加载了布局文件settings_with_drawer,位于frameworks/base/packages/SettingsLib/res/layout/返回到DashboardSummary中的onViewCreated,这里会调用rebuildUI。
2023-08-15 21:20:09
191
原创 launcher流程分析
谁会发送ACTION_USER_UNLOCKED呢,全搜发现在UserController.java中的finishUserUnlocked中发送,在此处加上堆栈打印,可以知道UserController收到了消息SYSTEM_USER_UNLOCK_MSG会处理,该消息来自finishUserUnlocking。在此处添加打印,打印获取到的query和返回的bestChoice,其结果如下:,选择FallbackHome时只查询到了FallbackHome,Launcher还没起来。
2023-08-15 19:39:59
285
原创 tzdata更新
tzdata包:Index of /ubuntu/pool/main/t/tzdata/官网:http://www.iana.org/time-zones代码路径:system\timezone\input_data\iana\tzdata2017b.tar.gz执行脚本:update-tzdata.py(执行时先soure ,lunch ,make)生成路径: system\timezone\output_data\iana\tzdata。
2023-08-15 19:28:17
642
原创 文件管理app源码分析
为RootsFragment中的onLoadFinished的结果,来自RootsLoader,其监听com.android.documentsui.action.ROOT_CHANGED,由ProvidersCache中的doInBackground发送。DirectoryLoader进行加载数据,DirectoryFragment进行界面的显示,DirectoryAddonsAdapter为界面的适配器。适配器DirectoryAddonsAdapter,主要逻辑如下。
2023-08-15 19:08:59
407
原创 app权限
定义在/frameworks/base/core/res/AndroidManifest.xml中,查看protectionLevel字段,可分为normal,signature(需系统签名),privileged,dangerous(需动态申请)等。priv_app :没有platform签名的app(肯定没有system权限), 但Android.mk 中 LOCAL_PRIVILEGED_MODULE := true, 在priv-app 目录下的。比如以下两个语句会冲突。比如以下两个语句会冲突。
2023-08-15 18:55:01
187
原创 android studio导入jar包
比如framework ,将classes.jar 重命名为framework.jar ,放在指定目录下。注意:修改后依旧报红,但可以编译成功。
2023-08-15 18:13:16
182
原创 dial应用源码分析
在DialpadFragment点击拨号会执行以下逻辑,重点关注prohibitedPhoneNumberRegexp,设置该值可以限制输入哪些号码,其定义在strings.xml中的config_prohibited_phone_number_regexp。打开dialer界面,抓取log:,主界面为com.android.dialer/.main.impl.MainActivity。在OldMainActivityPeer中点击拨号按钮会执行以下代码。查看MainActivity,主要逻辑如下。
2023-08-15 16:33:20
233
原创 telephony上层应用功能分析
卡激活:extTelephony.activateUiccCard卡停用:extTelephony.deactivateUiccCard切换默认数据卡:subscriptionManager.setDefaultDataSubId切换默认短信:subscriptionManager.setDefaultSmsSubId切换默认电话:phoneAccountsList = telecomManager.getCallCapablePhoneAccounts()
2023-08-15 11:37:09
359
原创 开机注网流程
MM模块收到reg模块发来的注册请求,根据传来的intial_rat 发送rrc_service_req去激活对应协议栈,在接入层模块进行扫频,小区搜索,小区选择等。收到注册成功的消息(DATA_REGISTRATION_STATE)→apn连接(trySetupData)→卡loaded–>trySetupData。plmn和rat选择在reg模块中完成,通过CM_SERVICE_REQ发起,分为手动模式和自动模式。apn配置在apns-conf.xml文件中 ,一般位于/system/etc/下。
2023-08-15 10:11:00
562
原创 carrier_config随卡配置
/获取carrierId。for (String file : getApplicationContext().getAssets().list(“”)) { // /packages/apps/CarrierConfig/assets/目录。obtainMessage(EVENT_BIND_DEFAULT_TIMEOUT, phoneId, -1),//发送EVENT_BIND_DEFAULT_TIMEOUT。//调用RIL.java中的getIMSIForApp 发送消息GET_IMSI到ril。
2023-05-19 16:12:38
1335
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人