- 博客(198)
- 资源 (32)
- 收藏
- 关注
原创 修改 SELinux 模式的步骤
SELinux(Security-Enhanced Linux)是一个安全模块,提供了强制访问控制(MAC)机制,用于增强 Android 系统的安全性。通过 ADB,你可以修改设备的 SELinux 模式,但这种操作通常需要设备已解锁并启用 root 权限。
2024-12-16 17:34:16
1276
原创 MPAndroidChart--关于数据如果存在0的情况,曲线图会断开,连线中间会有线条未显示
最近车机端设置的的需求,图表显示,电耗,油耗,突然又要用图表库了,上一次写折线图曲线图这一类图表,还是7年前的需求,先看看类似的图例// 上一个点的Y值是否为0。1.我们再使用的过程中,都会去设置,这个图表,你是用曲线图还是折线图还是阶梯图。从图可以看出来,当数据是0的时候,会出现线断开了,不连续的样子。全网找遍了,都没找到对应的代码,今天来总结归纳一下。2. 点击进去后,能看到他里面是一个枚举类型。点击查看 发现源码这个地方是这么写的。3.进一步查看调用地方。
2023-09-18 10:03:39
943
原创 Android ---使用Jenkins 打包release版本不能安装或者安装后不显示APP
这边记录一个昨天,今天遇到的一个坑货问题,别人提交了所有代码,我在Jenkins 触发构建,得到APK后,第一时间是发现,跟本地构建的对应包, 大小差的有点多,然后我上车,把包push进车机后,发现APP并没有出现。大家在用 Jenkins的时候,是不是会觉得很爽,因为他在用的过程中,是无脑的,毕竟一键触发!红框,框起来的,是我新加入的。/ /必须添加以下这句话。
2023-08-25 17:45:58
1191
原创 Android 9-- 源码角度: Home键的监听和拦截
在做应用层APP需求的过程中,HOME键的监听,Back键的监听,这都是很常见的问题,那你有试过,去拦截HOME键的事件吗,有去了解过如何处理吗,流程如何。首先大家应该先了解一种情况,就是Android在应用中是无法拦截Home键的,今天我们带大家看一下Home键的三种情况。中判断通过keyCode == KeyEvent.KEYCODE_HOME是不能拦截的。在Android应用中如果想监听Home键可以使用广播机制,这个在源码中也有体现。这样就可以监听Home的是否被按下。这是源码的具体类跟地址。
2023-08-04 09:21:11
1904
原创 Android10: 动态隐藏导航栏和状态栏总结
通过以上属性来隐藏状态栏和导航栏,发现上下拉还是会出现状态栏和导航栏,现在的需求是不要出现状态栏和导航栏。
2023-07-31 09:08:21
3016
原创 Android9--SystemUI:(2)状态栏/导航栏 创建流程
回头来看SystemUI的这些需求,跟多方串联的业务场景,其实我们,经常会遇到状态栏/导航栏的隐藏/显示问题,所以需要总结下他们是怎么一步步创建的,流程是怎么样。书接上文。
2023-07-11 19:47:58
1107
原创 Android 9-SystemUI:(1)启动流程
com.android.systemui.Dependency 是为了创建全局可用的依赖关系。com.android.systemui.SystemBars创建整个SystemUI视图的入口类。com.android.systemui.recents.Recents 最近任务com.android.systemui.volume.VolumeUI 音量控制com.android.systemui.pip.PipUI 画中画。
2023-06-24 22:15:36
1046
原创 Android 13-SystemUI 屏幕左上角或者左上交显示绿色亮点,去掉该亮点
【代码】Android 13-SystemUI 屏幕左上角或者左上交显示绿色亮点,去掉该亮点。
2023-06-12 15:38:20
1217
原创 Android7.1.1系统,Toast的Exception: android.view.WindowManager$BadTokenException解决
我们看一下谷歌源码是如何解决的,8.0以上系统Toast的handleShow 方法里面的一段代码,mWM.addView(mView, mParams),是被try catch 了,在7.x的系统是没有被catch住的(这里就不贴代码了)我们把dispatchMessage给catch住,handleMessage处理的消息具体实现还是原有的handler处理逻辑,不去影响原有的处理逻辑,我们只是catch住异常防止应用崩溃。一下解决办法是我网上转过来的,经过自测后,解决了我的问题,我这边记录。
2022-09-25 22:01:10
1621
原创 SharedPreferences 保存List<Bean> 到本地并解决com.google.gson.internal.LinkedTreeMap cannot be cast to异常
今天帖子内容说下遇到的,大概说下场景,需要讲一个List 保存在本地用SP,网上搜到很多帖子,本来是想找个不用GSON的,但是实在是没找到,应为是在SystemUI层改,后面没办法,我在 android.bp 文件里面加入了。最近有阵子没写博客了,跳槽了,转了个方向,是我之前一直想去的领域,我也准备了好一阵子,找这个方向的工作,运气不错,遇到了好的老大,这几天计划了下,今年后续计划,从2方面出发,一方面记录日常遇到问题,一方面梳理源码。继续说,网上找到的方法类。
2022-09-25 21:39:11
762
原创 系统方向学习9--android 10.0 去掉未知来源弹窗 默认授予安装未知来源权限
径:frameworks/base/packages/PackageInstaller/src/com/android/packageinstaller/PackageInstallerActivity.java。路径:frameworks/base/core/java/android/app/AppOpsManager.java。在9.0 以前的设备中,安装未来来源的权限开关 可以在SettingsProvider.app中的。最近跟着CSDN大佬,参与一个 21天打卡的活动。其中代码里面有这么一句。
2022-08-21 11:36:47
1411
原创 系统方向学习8--Android 10.0 SystemUI 状态栏屏蔽弹出的 提醒式通知
1. 学习到了 SystemUI中---- NotificationManagerService.java 中 负责管理通知声音的播放。最近跟着CSDN大佬,参与一个 21天打卡的活动。首先这有个入门的帖子可以看看。
2022-08-17 22:29:55
1034
原创 系统方向学习总结7--Android 10.0 app获取不到序列号解决方案
路径为:framework/base/services/core/java/com/android/server/os/DeviceIdentifiersPolicyService.java。10.0定制化开发中,在app开发过程中 会遇到获取系列号 总是返回unknow 的情况。说到SN IMEI1 IMEI2 我想起了几年前遇到的一个问题,当时也写了一个文章总结。最近跟着CSDN大佬,参与一个 21天打卡的活动。让我了解到,现在获取SN的方法 可以用这个了。那时候版本比现在低的多。...
2022-08-17 22:04:04
2680
原创 系统方向学习总结6 --Launcher3拖拽分析之Workspace
DragView存在的意义:代替BubbleTextView,在DragLayer上滑动。因为这个BubbleTextView的父布局不是DragLayer,而我们知道子View滑动是不能超过父view的,所以想想,如果直接让BubbleTextView去滑动,那么它就不能跨布局,因为我们要让这个随手指拖拽的view能随意跨越布局,所以会使用一个可以在整个屏幕上滑动的view,这个就是DragView。DragObject:拖拽过程中,最最有权力的类,包含了拖拽所需的一切信息。...
2022-08-15 00:32:15
599
原创 系统方向学习总结5--Launcher3实现动态指针时钟功能
下面就比较简单了,我是在BubbleTextView.java中添加listener,我这里偷懒了,应该给时钟单独创建一个view,继承BubbleTextView。在Launcher.java的onResume()和onPause()中分别开始和暂停。这样就可以了,如果想要加秒针,在IconUtil中再把秒针画出来就行。最近跟着CSDN大佬,参与一个 21天打卡的活动。还有日历的动态图标也可以用同样的方法实现。主要实现功能,可能有不合理的地方。......
2022-08-15 00:22:10
485
原创 系统方向学习总结4-- Android 10.0 解决切换横屏时SystemUI导航栏固定在桌面右侧而不是底部的问题
正常情况下横竖屏旋转的时候导航栏也会跟着一起旋转,但是在Android R上面发现导航栏在横屏的时候是固定在右侧的,而不是旋转到底部。这个功能其实是Android 高版本特意修改的,为了是方便横屏玩游戏等场景的时候不小心误触到。最近跟着CSDN大佬,参与一个 21天打卡的活动。...
2022-08-10 10:06:49
1461
原创 系统方向学习总结3-- Android Launcher3 app列表页桌面图标按安装时间排序app图标
最近跟着CSDN大佬,参与一个 21天打卡的活动这是第3次的内容从没接触过launcher 3 这块的东西,但是通过大佬的文章,我能懂他是要的一个什么样的效果在学了2天launcher 3.0后,有这么几个问题,我要抛出来1.什么是Launcher3。......
2022-08-07 21:40:01
542
原创 系统方向学习总结2--Android 10.0 SystemUI默认去掉底部导航栏的三种方法
看完他这个后,刚好最近刚入职,新人菜鸡一个,接触了这个导航栏,他也提到2个方法,不过我想到第3个方法,但是这个方法有点多此一举,就是重新继承一个底部导航栏,吧这个布局改成什么都没有方式来实现。我这里只有car版本的源码,用这个来距离,重写一个来继承,然后初始化的时候 XML布局里面放空的,当然这样做还要改(屏蔽)很多功能代码,有点多此一举,不过我想也是一个方法之一。frameworks/base/core/res/res/values-sw900dp/dimens 我那个需求改这个也有用。...
2022-08-07 21:09:34
1485
原创 系统方向学习总结1--Android 10.0 Settings 显示菜单增加选择屏幕密度选项
densityDpi 屏幕密度,即每英寸的屏幕中包含的像素数量,英寸为国外的长度单位,它换算为国内的单位为:1英寸 = 2.54厘米,所以每英寸屏幕,就是说每2.54厘米屏幕。比如densityDpi为160,则表示每英寸屏幕中的像素点有160个,也就是说真实手机屏幕上,你可以拿尺去量一量,屏幕上,每2.54厘米就包含有160个像素点在里面,当然了,你量一量长度还可以,像素点你是看不见的,因为像素点非常非常的小。显示的密度越高,拟真度就越高。2、分辨率:屏幕图像的精密度,是指显示器所能显示的像素有多少。..
2022-08-07 21:06:56
912
原创 android 10 系统源码---修改 CarSystemUI模块 竖屏导航栏的高度
如果要修改 CarSystemUI模块 竖屏导航栏的高度找frameworks/base/core/res/res/values-sw900dp/dimens如果你只是改value/dimens 是没用的 坑死人
2022-06-23 11:06:35
1663
原创 Android背景色内部渐变
使用shape的gradient属性实现渐变效果图线性渐变圆形渐变扫描渐变线性渐变在drawable文件夹下新建shape资源:属性值android:angle (必须是45的整数倍. ) Integer:渐变颜色的角度 android:angle="0": left to right android:angle="90": bottom to top android:angle="180": right to left android.
2022-03-25 23:55:54
4586
原创 android--GooglePay 谷歌支付内购接入(2)
android--GooglePay 谷歌支付内购接入(1)一.支付返回CODE(BillingResponseCode)// * int SERVICE_TIMEOUT = -3;//服务超时// * int FEATURE_NOT_SUPPORTED = -2;//不支持功能// * int SERVICE_DISCONNECTED = -1;//服务单元已断开// * int OK = 0;//成功// * int USER_CANCELED
2022-03-19 14:18:26
5189
原创 android--GooglePay 谷歌支付内购接入(1)
由于谷歌应用市场的限制令,需要把目前的APP接入googlepay 谷歌支付,以免在3月31日底,没接入的APP将会有被下架掉的风险,整个接入流程,以及注意事项,以及踩坑记录,我都会写出来,希望对大家有所帮助,文章大概拆成2篇,来全方位记录跟概况一.接入前准备## 1.申请一个google play开发者账号,这里我是有google play开发账号的,毕竟我们的APP是发谷歌市场的## 2.提前准备好一个apk(不需要集成支付sdk,占位用),在google play控制台上传
2022-03-19 12:32:48
29957
22
原创 Android--(三星手机)webview嵌套H5,点击H5按钮跳转手机拍照,横屏拍照导致失败或崩溃问题
Android--(三星手机)webview嵌套H5,点击H5按钮跳转手机拍照,横屏拍照导致失败或崩溃问题(完美解决)最近在改一个需求,用的是第三方公司的一个H5链接(Udesk公司),发现WebView嵌套了H5,点击按钮跳转拍照,横屏拍的时候会失败或者崩溃Android Camera 三星BUG :最近在Android项目中使用拍照功能 , 其它型号(华为,小米,中兴,魅族...)的手机运行成功了 唯独在三星的相机上遇到了bug .BUG具体体现为 :(1) 摄像头拍照后图片数据
2022-01-26 10:16:06
3060
1
原创 Udesk接入需求---Android嵌入Udesk即时通讯网页插件(二、实现发送照片,录屏,发送文件)
这是19年当时的一个需求,这是第一步,接入方式,但是最后我接入的方式,由于公司是付费用户,所有选择的是 webview嵌套H5网页,具体网页是Udesk公司提供的,本次来说下客服同学给测试同学说的一个bug,经过查看,发现是后续对方公司开放的新功能,但是网上搜了一圈,没找到解决办法,也看了Udesk的github-demo,也没找到解决办法,最后联系他们技术支持,给了我答案,这里我需要重新添加代码,这里详细记录下,免得大家以后也遇到同样问题。
2022-01-20 10:53:14
2474
原创 记录有趣面试题。。。。
1.弱网情况下,发一个图片跟文字的帖子,是要如何,(先发文字,后发图,如何关联表格)2.线程池这块3.kotlin out in/ java super extends (原理性地理解 Java 泛型中的 extends、super 及 Kotlin 的协变、逆变)4.框架设计 泛型使用mvvm jetpack kotlin5.性能优化 内存泄漏 项目中的处理跟使用......
2022-01-07 13:50:38
975
原创 自定义view--仿照 体育app,股票,基金,电商,区块链APP 数据信息栏展示
我是个球迷,喜欢看各种篮球 足球比赛,所以手机里面也安装了各种体育类APP,之前就发现了一个有趣的自定义view,很多场景都能通用 比如:(虎扑)体育app,球队积分/比赛数据自定view股票,基金,区块链页面等下面上图...
2022-01-05 15:01:03
11581
原创 写给我自己的2022
时间真快,2022年,总结回顾一下2021年,其实我发现,当业务我已经很熟的时候,已经没什么挑战了,反而2021,这一年的需求,遇到麻烦的归纳起来有3类,1类是自定view(当时的筛选框,动画特效,以及view需要自定的需求) 2类需求的重构(1.如何重构,用什么架构重构,这样重构后有什么好处) 3.从没接触过的技术(如何去处理,才能又快,又正确)以上三点用通俗 易懂的话,来概括,这将是我2022年需要突破的,可以总结成以下:1.自定义view的训练可以说是多写 多学 多看 多总结吧,平时.
2022-01-05 14:54:30
1501
原创 Flutter基础(1)
一.创建新的Flutter工程使用终端进行创建 不支持大写字母,可以加下划线 创建成功后,可以使用VSCode或者Android studio打开flutter create 项目名工程内容 lib文件夹:存放编写的代码,main.dart即为启动入口项目启动 打开iOS或者安卓模拟器, 在工具栏找到启动调试,点击进行启动二、flutter项目编写flutter项目的几个特性 热重载 hot reload 、 热重启 restart 运行一个flutte.
2021-12-29 00:16:44
1492
2
原创 dart基础语法(4)
一. Dart的异步模型我们先来搞清楚Dart是如何搞定异步操作的1.1. Dart是单线程的1.1.1. 程序中的耗时操作开发中的耗时操作: 在开发中,我们经常会遇到一些耗时的操作需要完成,比如网络请求、文件读取等等; 如果我们的主线程一直在等待这些耗时的操作完成,那么就会进行阻塞,无法响应其它事件,比如用户的点击; 显然,我们不能这么干!! 如何处理耗时的操作呢? 针对如何处理耗时的操作,不同的语言有不同的处理方式。 处理方式一:多线程.
2021-12-01 23:37:53
4548
原创 dart基础语法(3)
一. 运算符1.1. 除法、整除、取模运算我们来看一下除法、整除、取模运算var num = 7;print(num / 3); // 除法操作, 结果2.3333..print(num ~/ 3); // 整除操作, 结果2;print(num % 3); // 取模操作, 结果1;1.2. ??=赋值操作dart有一个很多语言都不具备的赋值运算符: 当变量为null时,使用后面的内容进行赋值。 当变量有值时,使用自己原来的值。 main(List&..
2021-11-28 17:11:42
849
原创 dart基础语法(2)
今晚重新把视频看了一遍,总结下 dart基础语法上部分的知识点一.Hello World老师当初教育的,管你什么语言,都给我从hello world开始void main(){ print("hello world");} 一、Dart语言的入口也是main函数,并且必须显示的进行定义; 二、Dart的入口函数main是没有返回值的; 三、传递给main的命令行参数,是通过List<String>完成的。 从字面值就可以理解List是Da
2021-11-25 00:59:06
1941
Android PAI (PlayAutoInstall)预装APK 功能
2018-12-12
MPAndroidChart---圆饼图
2016-12-16
MPAndroidChart-2016年12月15日GITHUB下载 可以直接解压运行
2016-12-16
高德地图SDK,拖动Marker后得到变化的经纬度(最新SDK.2016/11/29)
2016-11-29
android高德地图定位(最新2016/11/28的SDK)
2016-11-28
greendao3.0 增删改成功能
2016-09-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人