自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(80)
  • 资源 (2)
  • 收藏
  • 关注

原创 Android6.0 按键统一控制所有音量条

高通 msm8909diff --git a/frameworks/base/media/java/android/media/AudioSystem.java b/frameworks/base/media/java/android/media/AudioSystem.javaindex af27d36..eeefcc0 100644--- a/frameworks/base/media/java/android/media/AudioSystem.java+++ b/frameworks/ba

2021-07-21 18:01:20 890 4

转载 Android属性之build.prop生成过程

Android属性之build.prop生成过程此部分网上这篇文章分析的不错:http://blog.csdn.net/thl789/article/details/7014300 转载过来转载:https://www.cnblogs.com/bastard/archive/2013/02/28/2937014.htmlAndroid的build.prop文件是在Android编译时刻收集的各种property(LCD density/语言/编译时间, etc.),编译完成之后,文件生成在out/t

2021-02-20 14:53:29 875

原创 Android 9/10 Launcher3 适配出现的问题修改

1.去掉搜索框和切换系统桌面风格。首先search_container_workspace.xml就是搜索框的布局,如果只是简单的隐藏,只要将布局的高度设置为0dp就行了。如果要将桌面图标拉到原来放搜索框的位置只是隐藏是不行的。看代码mWorkspace.bindAndInitFirstWorkspaceScreen(null /* recycled qsb */);就是将搜索框用代码放到launcher上的,要去掉就得进入此方法中有一个布尔值FeatureFlags.QSB_ON_FIRST_SCR

2021-01-27 17:48:04 2815 5

原创 android 10.0 设置数据流量警告默认为关闭

默认关闭时/frameworks/base/core/res/res/values/config.xml改成-1即可frameworks\base\services\core\java\com\android\server\net\NetworkPolicyManagerService.javafinal NetworkPolicy policy = buildDefaultMobilePolicy(subId, subscriberId); ---->>进入方法buildDefau

2021-01-25 17:23:44 1152

转载 AndroidP/Q/R编译系统

概述Android编译环境的初始化过程,在编译环境初始化完成后,我们就可以用m/mm/mmm/make命令编译源代码了。当然,这要求每一个模块都有一个Android.mk文件。Android.mk实际上是一个Makefile脚本,用来描述模块编译信息。Android编译系统通过整合Android.mk文件完成编译过程。mmm命令的编译过程,需要依赖会make命令全部模块编译完成,下面使用编译mmm命令分析Android源码的编译过程,如图1所示:蘑菇OS > Android9.0编译系统 &gt

2021-01-14 14:27:32 2574

转载 Android Q 适配指南 让你少走一堆弯路

导读文中链接请自行科学上网Android Q Beta 1刚出,讲道理国内是不到下半年不用理睬Q的,但是上月末的一封华为要求适配Q的邮件要求我们在5月底之前完成相关适配,不然应用会被下架。一开始还心生奇怪,为什么这次华为的邮件来的那么早以及严格。当我仔细阅读了官方文档之后发现Q的更新特别多,且不适配应用可能无法正常运行(不管targetSDK是否为Q)。国内相关的文章还比较少,本文将总结归纳AndroidQ官方文档并将自己所踩过的坑记录下来,以便大家少走弯路。本文将从三个角度介绍Android Q

2021-01-14 11:27:19 338

原创 Android10 Bluetooth getMacAddress

Y:\project2\msm8953_android10_new\frameworks\base\packages\SettingsLib\src\com\android\settingslib\deviceinfo\AbstractBluetoothAddressPreferenceController.java@SuppressLint("HardwareIds") @Override protected void updateConnectivity() { B

2021-01-05 16:59:50 1698

原创 位运算

含义 Pascal语言 C语言 Java 按位与 a and b a & b a & b 按位或 a or b a | b a | b 按位异或 a xor b a ^ b a ^ b 按位取反 not a ~a ~a 左移 a shl b a << b a << b 带符号右移 a shr b a >> b

2020-08-22 15:19:44 122

转载 滴滴在 GitHub 开源的项目盘点

作为卓越的一站式移动出行和生活平台,滴滴在亚洲、拉美和澳洲为超过 5.5 亿用户提供出租车、快车、专车、豪华车、公交、代驾、企业级、共享单车、共享电单车、汽车服务、外卖、支付等多元化的服务。滴滴平台上,有数千万车主及司机获得灵活的工作和收入机会,年运送乘客超过 100 亿人次。滴滴开源的三年时间里,在滴滴高级副总裁、开源委员会主席章文嵩博士的倡导下,秉持「拥抱开放、合作共赢、创造价值」的理念。滴滴积极参与业界的开源项目,并不断对外输出内部的优秀项目。自 2017 年 6 月 30 日,滴滴首个开源.

2020-08-10 11:20:33 1415

转载 谷歌发布Android 11 Beta 3

外媒9to5 Google报道,谷歌于8月7日发布了 Android 11 的第三个公测版本,意味着谷歌移动操作系统的下一个大版本更新距离与大家正式见面又近了一步。继上次宣布转入平台稳定阶段以后,谷歌并未在Android 11 Beta 3中引入太多新内容,而是更专注于 bug 修复。不过与 COVID-19 密切接触者追踪服务有关的“曝光通知系统”,还是迎来了一些改变。谷歌建议开发者“发布应用、SDK和库的兼容更新”。通过Android 11,谷歌敲定了“面向所有应用的表层和行为”,从而提供了..

2020-08-10 11:01:14 388

转载 15个Android开源库

稳住,今天是周末。为大家精选了15个有趣又有用的开源,排名不分先后,一起来看看吧!1CoilCoil是Android上的一个全新的图片加载框架,它的全名叫做coroutine image loader,即协程图片加载库。与传统的图片加载库Glide,Picasso或Fresco等相比。该具有轻量(只有大约1500个方法)、快、易于使用、更现代的API等优势。它支持GIF和SVG,并且可以执行四个默认转换:模糊,圆形裁剪,灰度和圆角。示例如下:i...

2020-08-10 10:26:00 560

转载 Android 9.0 Bluetooth源码分析(三)蓝牙配对流程

1 UI蓝牙配对开始于settings设备列表 /packages/apps/Settings/src/com/android/settings/bluetooth/DeviceListPreferenceFragment.java中。DeviceListPreferenceFragment是蓝牙扫描到的设备列表,点击其中一个蓝牙设备,调用onPreferenceTreeClick方法开始蓝牙的配对过程。@Overridepublic boolean onPreferenceTreeClick(Pr

2020-06-19 11:34:59 2658

原创 创建Android系统属性ro.

out\target\product\sdm845\system\build.prop的生成是由make系统解析build/core/Makefile完成,Makefile中首先定义各种变量,其中就有BUILD_DISPLAY_ID="$(BUILD_DISPLAY_ID)" \Makefile中调用build/tools/buildinfo.sh执行脚本,并输出到build.prop。流程packages\apps\Settings\src\com\android\settings\d

2020-05-22 16:07:53 1137

转载 AndroidStudio中使用plantUML

作者微博:攻城师sloopUnified Modeling Language (UML)又称统一建模语言或标准建模语言,用来描述 类(对象的)、对象、关联、职责、行为、接口、用例、包、顺序、协作,以及状态。是帮助自己理清众多类之间复杂关系的不二利器,也能帮助别人快速理解你的设计思路。那么,我们怎么在AndroidStudio中创建自己的UML类图呢?接下来我就教大家如何用正确的姿势创建UML类图。一.用正确的姿势安装panltUML插件1.File->Settings->Plugins-

2020-05-11 15:21:04 3354

转载 Android4.4系统状态栏的信号图标显示流程简介

一方面,NetworkControllerImpl.java通过onRecieve方法接收Ril发送的广播,首先,获取广播发送的Intent的action,根据广播的类型(有这几大:wIFi类型,电话卡,连接,设置),来监听RIL上报的消息变化。另一方面,在其构造方法里,通过registerPhoneStateListener(context)来监听电话信息的变化,如下是二者的部分代码:OnRecieve{final String action = intent.getAction();......

2020-05-11 11:45:54 560

原创 UML:统一建模语言(Unified Modeling Language)详解和simpleUML 的使用

UMLhttp://ivanfan.site/2017/10/14/UML%20%E5%8F%8A%20StarUml/https://segmentfault.com/a/1190000011556007UML:统一建模语言(Unified Modeling Language)。在 UML 系统开发中有三个主要的模型:功能模型:从用户的角度展示系统的功能,包括用例图。 对象模型...

2020-04-28 16:24:03 631

转载 Android6 M Dialer完全总结

欢迎转载,但请保留作者链接:http://www.jianshu.com/p/ca4ab4e9817f作为Dialer Owner,作一下基于M版本的总结吧。在线源码阅读:http://androidxref.com总体轮廓手机之所以被称为手机,是因为它是一个通讯工具,而完成这一核心功能的软件模块,即为Telephony。Telephony包含的范围非常广泛,单拿上层来说,大致可以划...

2020-04-07 16:52:20 468

原创 Android requestFocus获取焦点失败问题

requestFocus这个方法是有延时的,android刷新时按照一定顺序,如果界面刷新未完成时,调用requestFocus是没有效果的。Android加载刷新UI的时候,是从左到右,从上到下的顺序,正在加载的过程中,如果此时requestFocus(),的话,有可能此时还没把整个界面刷新好,导致requestFocus无效。网上的通用方法,给editText.requestFocus()...

2020-04-07 16:33:26 2127

转载 Android TV开发 开源项目收集

Android TV和Android手机开发的主要区别在于焦点的控制和焦点效果的不同。以下是开发过程中收集到的开源项目,记录于此,与大家分享一下。Android TV google官方TV库https://github.com/googlesamples/leanback-showcase智能电视,电视盒子开发SDKhttps://github.com/boxmate/tvframe...

2020-04-07 15:21:41 1078

转载 Android 9.0 Launcher源码分析(一)——系统启动Launcher流程

转载请注明原地址:https://www.jianshu.com/p/35e66fe56a58现在网上能搜到的关于Android原生Launcher的一些文章,大多数是基于Android 7.0或者更早之前的,比较老旧。虽说依然可以作为参考,但是经过几个大版本的演进,还是多多少少有些不同的。于是打算自己写一写基于最新AOSP的Launcher3代码分析,供大家参考。Android开机过程中,...

2020-04-07 15:19:29 1427 3

转载 Android 9.0 Launcher源码分析(二)——Launcher应用启动流程,数据加载与绑定

上一篇文章中分析了系统是如何把桌面应用拉起的。(见Android 9.0 Launcher源码分析(一)——系统启动Launcher流程)现在接上文,分析一下Launcher应用的启动流程。首先把Launcher的onCreate贴出来。 @Override protected void onCreate(Bundle savedInstanceState) { ...

2020-04-07 15:11:57 1242

转载 Android 9.0 Launcher源码分析(三)——Launcher的布局与多设备适配

本文对Launcher的布局做一个整体性的描述。我们先看一下布局文件launcher.xml<com.android.launcher3.LauncherRootView xmlns:android="<http://schemas.android.com/apk/res/android>" xmlns:launcher="<http://schemas....

2020-04-07 14:58:32 1314

转载 android6 接听电话时声音由默认听筒输出改为外放输出

方法一,修改frameworks/av//services/audiopolicy/enginedefault/src/Engine.cppEngine::getDeviceForStrategyInt()函数的case STRATEGY_PHONE下switch (mForceUse[AUDIO_POLICY_FORCE_FOR_COMMUNICATION]) { ... ...

2020-04-07 11:49:18 998

转载 Android 9.0 GMS 桌面Launcher3 布局修改

先看下CDD文件的要求集成了GMS给的partner_gms包后,发现Hotseat的排列并没直接像文档上要求的那样。少了chrome,我就去launcher3中打开配置dw_phone_hotseat.xml,添加修改 <!--在第五个位置添加chrome--> <favorite container="-101" scree...

2020-04-01 11:50:27 2217

转载 官方版Android源码查看工具正式发布!

一直以来,Android源代码查看与搜索都是Android开发者的一个痛点,虽然Android Studio 工具支持下载源码后跳转到底层实现,但是有时候还是不能满足我们的需求,最典型的例子就是我们要更改源码实现来修复一个bug的时候。如PopupWindow,Android 6.0 以上点击PopupWindow以外区域不能消失的问题,我们需要对比不同Android版本的不同实现,这个时候And...

2020-01-14 17:34:35 6823 2

原创 Android Studio导入Android系统源码

实现步骤非常简单:1:编译idegen模块源码要编过,不然idegen没法生成。检查out/host/linux-x86/framework/目录下是否有idegen.jar如果idegen.jar不存在,执行mmm development/tools/idegen/把这个文件copy到out/host/linux-x86/framework/目录下,在根目录下执行 . ...

2020-01-10 16:48:45 3142

转载 Android 8.0系统源码分析--openCamera启动过程源码分析

今年一进公司就开始搞相机开发,一直是在搞相机应用层,不过自己的学习心一直没停,闲暇之余就研究一下相机的framework、HAL层的东西,平时工作中碰到的和自己接触到的,相机中最复杂的就是预览了,有了一些体会也不想放下,所以决定写一系列关于Android相机的博客,把自己学习到的东西记录下来。 说起Android相机的东西,从应用层的角度来看,基本就是四个重要的节点了:openCame...

2020-01-08 11:08:54 724

原创 Android9 SnapdragonCamera顶部添加按钮打开第二个摄像头

diff --git a/packages/apps/SnapdragonCamera/res/layout/camera_controls.xml b/packages/apps/SnapdragonCamera/res/layout/camera_controls.xmlindex 5e33709..a406ea0 100755--- a/packages/apps/Snapdragon...

2019-12-31 15:44:12 768

原创 Android9 点击按键KeyEvent.KEYCODE_CAMERA没反应

高通Android9 在适配物理按键KeyEvent.KEYCODE_CAMERA没反应,是点击KEYCODE_CAMERA的时候,广播接收不到;原因是:android8.0及以上系统关于广播的规定:发现果然是对隐式广播做了限定,如果targetSdkVersion >=26,在Manifest里面注册的Receiver可能无法接收到广播消息(我的广播接收者就是像这样静态注册的):方...

2019-12-31 15:35:12 1565

转载 Android 7.0 虚拟按键(NavigationBar)源码分析 之 View的创建流程

最近有个需求是修改虚拟按键的单击和长按效果。所以研究了下Android关于虚拟按键的实现流程。好记性不如烂笔头,记录如下。 首先,几个重要的类://实现 单个虚拟按键的 自定义ImageView frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyButtonVie...

2019-12-12 20:17:00 351

转载 android 7.0平台客制化虚拟导航按键(隐藏NavigationBar,上滑显示NavigationBar)

如图,需求是增加一个按钮可以隐藏NavigationBar,上滑显示NavigationBar。参考文章:Android 8.1平台客制化虚拟导航按键Android 7.0 虚拟按键(NavigationBar)源码分析(一) 之 View的创建流程android导航栏隐藏与浮现1.首先新建一个hide_show.xml,其中systemui:keyCode="142"...

2019-12-12 20:15:20 626

原创 Android 8/9高通平台客制化虚拟导航按键隐藏

高通平台源代码更改diff --git a/frameworks/base/packages/SystemUI/res/values/config.xml b/frameworks/base/packages/SystemUI/res/values/config.xmlindex 22180dc..7e6c813 100644--- a/frameworks/base/packages/S...

2019-12-12 20:12:04 1502 3

转载 Android 8 9 使用mmm进行编译SystemUI失败处理。

使用make -j8进行编译成功,但是进行mmm进行单独编译时失败ninja: error: 'out/target/common/obj/JAVA_LIBRARIES/metrics-helper-lib_intermediates/classes-header.jar', needed by 'out/target/common/obj/APPS/SystemUISharedLibTest...

2019-12-12 19:57:59 1342

转载 Android6.0 源码修改之屏蔽导航栏虚拟按键(Home和RecentAPP)/动态显示和隐藏NavigationBar

场景分析,为了完全实现沉浸式效果,在进入特定的app后可以将导航栏移除,当退出app后再次将导航栏恢复。(下面将采用发送广播的方式来移除和恢复导航栏)ps:不修改源码的情况下,简单的沉浸式效果实现代码如下,在ACitivy中添加即可(此种做法的缺点是当界面弹出对话框时或者点击的屏幕的顶部或底部边缘,会再次出现导航栏和状态栏)@Overridepublic void onWindowF...

2019-12-12 14:59:37 643

原创 Android6 wifi取消保存不成功 wifiManager.removeNetwork()

在移除wifi WifiPwdForget() ,方法里使用了wifiManager.removeNetwork(),只有通过工具设置保存密码的wifi才可能被移除,否则移除不成功;查看接口说明,谷歌解释/*mWifiManager.removeNetwork方法的解释Applications are not allowed to remove networks created by...

2019-12-09 15:43:19 2568

转载 UserHandle

可以看到,UserHandle包含三种概念:userid,uid,appiduserid:就是有多少个实际的用户罗,例如老爸很穷,要跟儿子共用一台手机,那可以跟手机将两个用户,user 0和user 1。两个用户的应用和数据是独立的。uid:跟应用进程相关。除了sharduid的应用,每个用户的每个应用的uid不一样的。用户0的应用的uid从一万开始算。appid:跟app相关,包名相同...

2019-11-13 15:32:04 1808

转载 Android 获取屏幕宽度和高度的几种方法

备注:测试手机是三星S8,手机屏幕分辨率 2960*1440方法0 Display display = getWindowManager().getDefaultDisplay(); int width = display.getWidth(); int height = display.getHeight(); Log.d(TAG, "width = " ...

2019-11-13 15:10:03 255

转载 Android标题栏(TitleBar)绝佳解决方案

这可能是性能最优、使用最简单,支持自定义的标题栏Github传送地址,欢迎Star,Pull及issue已投入公司项目多时,没有任何毛病,可胜任任何需求,点击此处下载Demo想了解实现原理的可以参考文章:纯手工打造一个通用的标题栏TitleBar集成步骤dependencies { implementation 'com.hjq:titlebar:5....

2019-11-13 09:35:41 548

原创 Android9(P)添加第三个摄像头预览图片镜像

第三个摄像头的ID为 cameraID=2;packages/apps/SnapdragonCamera/src/com/android/camera/PhotoModule.java | 11 ++++------- packages/apps/SnapdragonCamera/src/com/android/...

2019-11-07 16:37:35 765

转载 Android源码笔记——Camera系统架构

Camera的架构与Android系统的整体架构保持一致,如下图所示,本文主要从以下四个方面对其进行说明。Framework:Camera.java Android Runtime:android_hardware_Camera.cpp Library:Camera Client和Camera Service HAL:CameraHardwareInterface一、F...

2019-10-30 10:12:26 308

Android 7.1 增加Ethernet

Android 7.0 增加Ethernet设置(DHCP与Static ip) 参考文章:http://blog.csdn.net/hclydao/article/details/50972932

2018-05-22

android4.4-add-ethernet

根据红尘六欲整理的文件包括缺失的DhcpInfoInternal.java文件,这里都有 原文链接 https://blog.csdn.net/hclydao/article/details/50976868

2018-05-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除