android
SevenUUp
这个作者很懒,什么都没留下…
展开
-
屏幕适配小结
先转载一篇文章对资源文件夹有一个基本结构了解:https://blog.csdn.net/yljme/article/details/40071593设备A的屏幕信息如下(不包括导航栏高度)设备B的屏幕信息如下(不包括导航栏高度)项目资源文件夹如下分析:因为是横屏,所以是value-land;因为设备A的densityDpi为240,所以会读取value-land-hdpi;因为设备B的densityDpi为320,所以会读取value-land-xhdpi;因为设备A的height为原创 2022-04-06 17:47:12 · 1990 阅读 · 0 评论 -
Android另辟蹊径开机自启动方案
当大家看到这篇文章的时候,应该已经看到过很多关于开机自启动的文章,大概可以归纳为开机广播方案、产商定制的自启动功能方案如文章标题,这篇文章会提到一种新的方案:无障碍开机自启动说到这里,大家应该也豁然开朗了,文章其实也该结束了。但是介于无障碍服务属于一个特殊的系统服务,我觉得有必要再多讲一点关于其授权的方法,毕竟网络上已经有很多文章教我们从0到1开启一个无障碍服务,但很少讲到如何授权。接下来,我会谈到无障碍服务的几种授权方案:(主要针对root或系统权限)1.普通应用跳转到系统原创 2022-03-04 11:39:20 · 3347 阅读 · 1 评论 -
华为开发者选项锁屏已被管理员、加密政策或凭据存储禁用
先说场景:采购了一批华为的pad(android 7.0.0),每次开机都有锁屏壁纸,所以可以在开发者选项中的锁屏选项中关闭该功能。但部分设备的该选项是灰色的无法操作(具体原因不明),根据网络上说的清凭证,设密码都无效。所以花了些时间研究,记录一下思路。前提是设备root了或者有系统权限,以下是设备root的情况处理:1.首先我对比了其他的设备,在开发者选项中未看到【锁屏】选项,以为这是华为自己定制的功能,由于没有源码。所以反编译了Settings.apk,其实这一步走了弯路,但还是记录一下,以下是我原创 2021-11-03 10:57:06 · 6924 阅读 · 0 评论 -
代码禁用自己集成的腾讯x5内核
腾讯x5官方文档:https://x5.tencent.com/docs/index.html其中未说明如何禁用x5内核,网络上有很多关于禁用的文章,但都是禁用微信的x5内核。于是通过文档上的调试模式,顺藤摸瓜,标准的初始x5组件:会在data/data/包名/下生成如下目录及文件:其中debug.conf文件就是关键。(以下是我禁用后的截图)于是在初始化后就增加了如下代码:(我想在android6.0及以上禁用x5内核,原因我就不说明了)完工。不用重启应用就可以达到目的,可以使用原创 2021-09-13 14:42:05 · 1178 阅读 · 3 评论 -
对release版本apk进行调试以及https抓包
这里不再分析其他情况,仅针对release版本处理;应用debug步骤:参考链接1.准备root的设备,安装Magisk,此步骤省略。。。。2.使用magisk指令修改:adb shellsumagisk resetprop ro.debuggable 1stop;start;应用抓包步骤:1.准备charles抓包工具,走抓包流程,在设置上安装证书,https乱码参考链接2.Magisk安装Move Certificates模块...原创 2021-09-03 17:37:04 · 10291 阅读 · 0 评论 -
泛型实际类型获取与生成
泛型类型获取文章摘自https://blog.csdn.net/qq_27070117/article/details/103069308clazz.getTypeParameters()如上代码,我给类TV声明了两个泛型V和T,而通过getTypeParameters()获取到的数组正代表类头部声明的泛型,我们可以通过getName()方法获取到声明时定义的字符串(这个例子中就是 V和T)clazz.getGenericSuperclass()clazz.getGenericSuperclas原创 2021-08-02 09:48:15 · 176 阅读 · 0 评论 -
异步任务工具
组件说明按组执行的异步任务导入依赖Step 1. 添加JitPack仓库到根目录build.gradle文件allprojects { repositories { ... maven { url 'https://jitpack.io' } } }Step 2. 在module添加依赖dependencies { implementation 'com.github.Doonkey:AsyncTool:2.0' }功能描述组与组串行,组内遵循原创 2021-08-01 17:33:25 · 168 阅读 · 0 评论 -
Android基于闹钟的定时任务组件
计划任务组件根据系统闹钟的定时任务,按任务的执行时间顺序依次执行,可动态添加及取消任务。不支持任务时间片重叠的场景基于开源项目修改,感谢作者:https://github.com/BolexLiu/TimeTask使用说明导入依赖Step 1. 添加JitPack仓库到根目录build.gradle文件allprojects {repositories {...maven { url '[https://jitpack.io](https://jitpack.io)' }}}原创 2021-07-30 11:39:07 · 241 阅读 · 0 评论 -
Android应用内无需权限悬浮窗
Android悬浮窗的开源库有很多,之前一直使用的FloatWindow,也非常好用!这个库支持应用内以及应用外悬浮窗,只是在高版本中需要申请悬浮窗权限,有时并不需要应用外悬浮窗,但在高版本仍旧需要申请权限,就有点不对劲了!所以参考了其他的开源项目,自己又整理了一个简单好用的开源悬浮项目,欢迎大家指正纠错!项目地址先贴上:https://github.com/Doonkey/DkFloatingView下面就大概说明一下这个项目应用内悬浮窗,低侵入性,无权限申请,简单配置,全局可用,原创 2021-05-17 14:28:57 · 3111 阅读 · 4 评论 -
android View扩大触摸选区
viewGroup.post(() -> { Rect rect = new Rect(); view.getHitRect(rect); rect.left -= 30; rect.top -= 30; rect.right += 30; rect.bottom += 30; TouchDelegate touchDelegate = new TouchDelegate(rect, view); viewGroup.setTouchDeleg原创 2021-05-14 11:14:28 · 344 阅读 · 1 评论 -
TextView处理滑动冲突复盘
平常在ViewGroup中放一个textView组件,无可避免会出现textView内容过多而需要解决滑动冲突的问题.大多数的做法就是再嵌套一个ScrollView来处理滑动冲突,而之所以用ScrollView的考虑无非就是处理是否滑动到边界,这么想想感觉不值得!网上有很多介绍如何让TextView加载多内容时可滑动的文章,但是很少有解决其滑动冲突的文章.今天就不说怎么支持滑动了,因为只是加一句textView.setMovementMethod(ScrollingMovementMeth原创 2021-03-23 10:16:38 · 386 阅读 · 1 评论 -
ViewPager禁止滑动
重写onInterceptTouchEvent(MotionEvent ev){}public class UnScrollableViewPager extends ViewPager{ @Override public boolean onInterceptTouchEvent(MotionEvent ev) { if (isScrollble()){ return super.onInterceptTouchEvent(ev); }else {原创 2021-03-08 10:16:36 · 306 阅读 · 0 评论 -
Androrid O+开启Service问题记录
直接上测试结论:android O及更高版本1.startService()开启的service受后台限制. 在后台60s后通过startService()会抛异常; 通过startService()开启的service退到后台后60s会自动onDestroy();2.bindService()不受后台限制. 但bindService()受当前activity的token影响,如果当前activity已经销毁,则无法bindService(),如果已经bindService原创 2021-03-05 10:43:56 · 712 阅读 · 1 评论 -
RxJava并发请求记录
看过一些关于RxJava并发的文章,终究还是自己测试一下比较心安,根据这篇博客测试几个常见的实现https://www.jianshu.com/p/6f428b52555a首先来2个Observable备用,当然.subscribeOn(Schedulers.newThread())这个少不了,不然都在一个线程哪来的并发.private List<Observable<String>> initObservables() { List<Observab原创 2021-01-08 09:40:03 · 411 阅读 · 0 评论 -
解决GlideApp无法生成问题
标准的流程如官方文档,不做解释:https://muyangmin.github.io/glide-docs-cn/doc/generatedapi.html但仍有无法自动生成,前一秒没问题,稍稍改了代码就不行了呢?思来想去,网上也提到了apt与annotationProcessor之间的冲突,但我都改用annotationProcessor了结果还是无法自动生成,折腾了半天就在错误日志多看了几眼,发现稍稍改了代码,把全局常量被改动了,导致编译也不能通过.想了想死马当作活马医,先把常量改正确了.后来就原创 2020-12-29 16:44:56 · 837 阅读 · 0 评论 -
设置recyclerView最大高度
simple layout:<?xml version="1.0" encoding="utf-8"?><android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="matc.翻译 2020-12-25 09:32:03 · 1447 阅读 · 0 评论 -
FBreader问题记录及多端同步心得开篇
android端做过epub阅读器的小伙伴应该对这个都不陌生了,可谓是又爱又恨.既爱其强大,又恨自己看不懂(可能只是我一人).我先讲下背景,公司是做数字阅读的,而我们选择了FBReader作为epub的文件解析器,在我接手之前已经用了好几年了(公司之前的大佬集成进去的),而我(不会c++的android菜鸡)来的2年期间也没有深入了解过.随之而来的就是慢慢的折磨,遇到了以下几个问题.一是新制作的epub结构不兼容FBReader结构导致无法阅读,那时排查了3天才发现是解析路径出了问题,最后勉强修复了这个原创 2020-11-19 16:53:14 · 696 阅读 · 1 评论 -
android引用系统res资源
anroid直接应用系统资源,编译无法通过,此时可以通过反射或者系统提供的api来获取资源对象.Resources.getSystem().getIdentifier(String name, String defType, String defPackage);eg:int layoutRes = Resources.getSystem().getIdentifier("transient_notification", "layout", "android");View la.原创 2020-11-16 11:27:34 · 451 阅读 · 0 评论 -
WebView问题:not defined;canGoBack()不准;onPageFinished()不准;webview输入法焦点遮盖
WebView中道不明的问题原创 2019-12-11 17:09:48 · 3227 阅读 · 1 评论 -
pem与.pk8转platform.keystore方法
拿到系统签名通常是这样的或者是(当然是删减版核心版了)那我们想要怎么办????接下来梳理一下步骤:1>在Liunx下执行,其中${dir}为签名所在文件位置,需要替换为你的真实路径openssl pkcs8 -in /${dir}/platform.pk8 -inform DER -outform PEM -out /${dir}/shared.priv.p...原创 2019-08-13 15:23:57 · 1699 阅读 · 1 评论