安卓兼职framework应用工程师
码龄4年
  • 700,743
    被访问
  • 920
    原创
  • 1,439
    排名
  • 1,144
    粉丝
关注
提问 私信

个人简介:本人从事7年的android app开发和framework开发 从事过mastar rk 展锐 MTK等平台os定制开发

  • 加入CSDN时间: 2018-01-23
博客简介:

安卓兼职framework和app工程师的博客

博客描述:
从事7年app和os定制开发
查看详细资料
  • 8
    领奖
    总分 5,089 当月 441
个人成就
  • 获得84次点赞
  • 内容获得284次评论
  • 获得653次收藏
创作历程
  • 238篇
    2022年
  • 287篇
    2021年
  • 235篇
    2020年
  • 160篇
    2019年
成就勋章
  • 入选《移动开发领域内容榜》第10名
TA的专栏
  • android 11.0 Rom定制化系统讲解
    付费
    112篇
  • Android高级进阶
    付费
    210篇
  • andoid10.0Rom定制化开发系列讲解
    付费
    303篇
  • android
    224篇
  • kotlin和ndk
    36篇
  • Linux
    2篇
  • 插件化
    2篇
  • 组件化
    4篇
  • ffmpeg
    27篇
兴趣领域 设置
  • 数据结构与算法
    数据结构
  • 移动开发
    android studio
  • 软件工程
    性能优化
  • 最近
  • 文章
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

android 11.0 去掉音量键+Power键组合键的屏幕截图功能

在11.0系统中由WindowManagerService这个系统服务来循环读取窗口获取的消息(包括按下,弹起,双击,单击等)然后分发到各个类接收处理这些消息,在这个过程中PhoneWindowManager会进行消息过滤处理,PhoneWindowManager中有两个方法interceptKeyBeforeDispatching和interceptKeyBeforeQueueing,其中包括了几乎所有按键的处理,interceptKeyBeforeDispatching主要处理Home键、Menu键、S
原创
发布博客 22 小时前 ·
23 阅读 ·
0 点赞 ·
0 评论

android 11.0 长按Power弹出关机对话框去掉屏幕截图和紧急呼救功能

在11.0的系统长按关机键,会弹出关机的对话框就是frameworks/base/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialog.java而所有的关机Actions事件也是在GlobalActionDialog中处理的接下来看下GlobalActionDialog.java源码public void showDialog(boolean keyguardShowing, boolean isDev
原创
发布博客 22 小时前 ·
19 阅读 ·
0 点赞 ·
0 评论

android 11.0 Hotseat 添加allapp button

在11.0laucher3定制化开发中,也会有需求要求添加allapp 按钮 点击按钮进入所有app页面具体定制如下 :添加需要的资源文件如下 :1 all_apps_button.xml<?xml version="1.0" encoding="utf-8"?><TextView style="@style/BaseIcon" />all_apps_button_icon.xml<?xml version="1.0" encoding="utf-8"?>
原创
发布博客 22 小时前 ·
21 阅读 ·
0 点赞 ·
0 评论

Android 11.0 Launcher3 app图标和hotseat 添加背景(焦点选中背景)

在11.0进行Tv设备定制化开发中,由于需要使用遥控器来移动来控制点击功能,所以需要给app 的Icon 和hotseat 添加背景来显示选中状态所以就需要在Launcher3中给Item 添加默认背景在Launcher3中布局是由Workspace 构造的 每一个页面由一个CellLayout组成,CellLayout还不是真正容纳图标的ViewGroup,每个CellLayout会包含一个ShortcutAndWidgetContainer,这才是真正容纳图标和Widget的ViewGroup。接
原创
发布博客 22 小时前 ·
20 阅读 ·
0 点赞 ·
0 评论

Android11.0 Launcher3 禁止在HotSeat创建文件夹

在11.0laucher3中拖拽item时 靠近某个图标时会形成文件夹(folder),而根据客户需求不想再hotseat形成文件夹, 这就要从workspace.java从来寻找解决方案了Launcher3中形成文件夹,是在Workspace.java中的 onDrop()方法里面实现的,拖动图标落点处可以合成一个Folder,如果不满足文件夹的条件,则调用CellLayout.java的performReorder方法createUserFolderIfNecessary()方法boolean c
原创
发布博客 22 小时前 ·
19 阅读 ·
0 点赞 ·
0 评论

android 11.0 Launcher3禁止拖动图标到Hotseat

在11.0系统Launcher3进行定制化开发中,禁止拖动图标到Hotseat也是常有的功能,而拖拽也是在workspace.java中处理的接下来就从workspace.java 开始找解决的办法首选来看 onDrop 拖拽事件都是从这里开始的public void onDrop(final DragObject d, DragOptions options) { mDragViewVisualCenter = d.getVisualCenter(mDragViewVisualCen
原创
发布博客 22 小时前 ·
16 阅读 ·
0 点赞 ·
0 评论

android11.0 Launcher3禁止拖拽app图标到第一屏

在11.0进行定制化开发Launcher3中,会对Launcher3 做些要求,比如现在的需求就是Launcher3第一屏的图标固定,不让其他屏的图标拖动到第一屏所以说这个需求和 禁止拖拽图标到Hotseat类似,也是从WorkSpace.java里面寻找解决方案先来看下WorkSpace.java 的onDrop方法 public void onDrop(final DragObject d, DragOptions options) { mDragViewVisualCenter
原创
发布博客 22 小时前 ·
20 阅读 ·
0 点赞 ·
0 评论

android 11.0 app应用卸载黑名单

11.0在进行定制化开发中,对于限制app卸载的功能也是常有的功能,就是常说的app卸载黑名单功能,而app的安装和卸载都是有pms进行管理的接下来看下PMS的源码int deletePackageX(String packageName, long versionCode, int userId, int deleteFlags) { final PackageRemovedInfo info = new PackageRemovedInfo(this); final boolean
原创
发布博客 22 小时前 ·
19 阅读 ·
0 点赞 ·
0 评论

android 11.0 app安装黑名单(限制app安装)

在11.0定制化开发中,客户需求要实现对某些app应用限制也就是app安装黑名单功能,在黑名单之中的应用会被限制安装,PMS就是负责管理app安装和卸载的,所以接下来看下PackManagerService.java的源码@GuardedBy("mInstallLock") private PrepareResult preparePackageLI(InstallArgs args, PackageInstalledInfo res) throws PrepareFail
原创
发布博客 22 小时前 ·
17 阅读 ·
0 点赞 ·
0 评论

Android 10.0 屏蔽掉 SystemUI 的通知提示音

在10.0SystemUI 中有一些 高级别的通知 发出的时候 会首选悬浮在状态栏 上面 几秒钟消失 并且还会有 通知提示音 ,根据需求要求去掉悬浮通知 同时也去掉通知提示音 这就要分析通知提示音是怎么发出来的首先我们需要知道在SystemUI启动的时候会Start()一个媒体播放的类RingtonePlayer。通知是通过RingtonePlayer 来播放通知声音而 NotificationManagerService.java 中 负责管理通知声音的播放frameworks\base\
原创
发布博客 22 小时前 ·
21 阅读 ·
0 点赞 ·
0 评论

读写xls 和 xlsx格式的excel文件

发布资源 前天 11:21 ·
rar

android 11.0 Launcher3去掉默认的google搜索栏

11.0定制化开发中,Launcher3去掉搜索栏也是个常见的功能开发,搜索栏就是workspace 第一页和第二页,所以去掉这两页就可以了一:去掉首页绑定的搜索栏修改位置packages\apps\Launcher3\src\com\android\launcher3\Workspace.java bindAndInitFirstWorkspaceScreen() public void bindAndInitFirstWorkspaceScreen(View qsb) {
原创
发布博客 前天 08:31 ·
68 阅读 ·
0 点赞 ·
0 评论

android 11.0 Launcher3分页图标横线改成小圆点

在11.0的Launcher3中,双层页面中滑动workspace时,分页线是一条横线 看起来不太美观,而单层页面分页线却是个小圆点所以改成小圆点还是比较好看点先看Launcher3布局的xmlres/layout/launcher.xml… <!-- The workspace contains 5 screens of cells --> <!-- DO NOT CHANGE THE ID --> <com.andro
原创
发布博客 前天 08:31 ·
60 阅读 ·
0 点赞 ·
0 评论

android 11.0 设置上网应用白名单(上网app白名单)

在11.0进行网络模块开发中,根据客户要求设置某些app可以上网,某些app不可以上网,就是所谓的网络白名单功能系统整个网络模块都是由NMS服务负责通讯的接下来先看下NetworkManagementService.java@Overridepublic void setFirewallEnabled(boolean enabled) { enforceSystemUid(); try { mNetdService.firewallSetFirewallType(
原创
发布博客 前天 08:30 ·
57 阅读 ·
0 点赞 ·
0 评论

android 11.0 SystemUI 状态栏下拉快捷添加截图快捷开关

在11.0SystemUI下拉状态栏中 添加截图快捷开关,也是常有的开发功能,下面就以添加 截图功能为例 进行讲解在quick_settings_tiles_default 和 quick_settings_tiles_stock 中添加 screenshot 截图修改如下:diff --git a/frameworks/base/packages/SystemUI/res/values/config.xml b/frameworks/base/packages/SystemUI/res/value
原创
发布博客 前天 08:30 ·
58 阅读 ·
0 点赞 ·
0 评论

android11.0 Launcher3修改某个app icon的图标

在11.0的laucher3中,所有的app icon和名称 以及Hotseat 文件夹都是用BubbleTextView类来构造的,所以要修改app的图标就要从这个类来分析源码/package/app/Launcher3/src/com/android/launcher3/BubbleTextView.javapublic void applyFromWorkspaceItem(WorkspaceItemInfo info) { applyFromWorkspaceItem(info
原创
发布博客 前天 08:30 ·
54 阅读 ·
0 点赞 ·
0 评论

android 11.0 修改Launcher3 app hotseat 图标形状为圆角图标

11.0产品开发中,对于Launcher3做各种定制化开发,也是常见的,对于修改图标的形状 修改为圆角图标,对于图标的修改也是要从BubbleTextView.java修改的在这里插入图片描述看BubbleTextView.java 源码/package/app/Launcher3/src/com/android/launcher3/BubbleTextView.java private void applyIconAndLabel(ItemInfoWithIcon info) {
原创
发布博客 前天 08:30 ·
57 阅读 ·
0 点赞 ·
0 评论

android 11.0 开机连接指定wifi

在11.0定制化开发中,客户需求在开机以后要连接指定wifi,那么涉及到在AMS开机完成后,进行连接指定的wifi首选看AMS 中 开机完成的源码final void finishBooting() { Trace.traceBegin(Trace.TRACE_TAG_ACTIVITY_MANAGER, "FinishBooting"); synchronized (this) { if (!mBootAnimationComplete) {
原创
发布博客 前天 08:30 ·
49 阅读 ·
0 点赞 ·
0 评论

android 11.0 framework系统api添加jni方法

1.添加自定义类android下新添加mdm文件夹建立SystemUtils.java类package android.mdm;import android.util.Log;public class SystemUtils { private native void native_setValue(int vlaue); private native int native_getValue(); public int getValue() { Log.e
原创
发布博客 前天 08:29 ·
47 阅读 ·
0 点赞 ·
0 评论

android 11.0 系统Services(自定义服务) 添加jni方法

在11.0系统开发中由于与底层进行通讯,涉及到jni方法添加,本篇讲解正确在系统服务中添加jni的方法详解1.在aidl文件中 增加调用native方法接口--- a/frameworks/base/core/java/android/os/IMdmManager.aidl+++ b/frameworks/base/core/java/android/os/IMdmManager.aidl@@ -80,4 +80,6 @@ interface IMdmManager { void allo
原创
发布博客 前天 08:29 ·
45 阅读 ·
0 点赞 ·
0 评论
加载更多