自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(73)
  • 收藏
  • 关注

原创 Android 13 高通设备热点低功耗模式(1)

如图,小米设备也可以区分出热点和路由器wifi,并且散发的热点也可以被Iphone设备识别为移动热点,但是我的设备散发的热点,IPhone设备当做一个普通的wifi,仔细看下小米设备在开启热点的时候,有一个设备标识,可设置为移动热点还是默认,测试发现,设置默认的话,该热点IPhone设备也识别不出来。测试发现小米设备和IOS,在wifi扫描列表,热点和路由器散发的wifi是有明显区分的,详见如下,曲别针图标的是热点,连接该wifi,状态栏图标也是显示未曲别针,但是大部分Android ,在这一块无区分。

2024-05-21 10:35:46 1349

原创 Android 13 高通设备热点低功耗模式(2)

高通热点被IOS设备识别为低数据模式,该功能仿照小米的低数据模式写的,散发的热点可以达到被IOS和小米设备识别为低数据模式。但是发现IOS设备如果后台无任何网络请求的时候,息屏的状态下过一会,会自动断开热点的连接。

2024-06-11 16:36:25 1074

原创 Android 13 sysprop_library新增属性

然后把:out\soong.intermediates\system\libsysprop\srcs\PlatformProperties_java_gen\gen\sysprop\system\libsysprop\srcs\android\sysprop\TelephonyProperties.srcjar。我们可以把该jar包放到AndroidStudio中引用看下,可以到TelephonyProperties.sysprop会被转换为TelephonyProperties.java。

2024-05-21 10:29:39 681

原创 Android 13 配置默认DN

如果存在用户配置的DNS服务器,则切面拦截运行商下发的DNS,替换为用户自己配置的DNS.

2024-05-21 10:25:00 506

原创 Android13 基座充电屏保

PowerManagerService里面主要是处理电源相关的逻辑,所以updatePowerStateLocked()方法会时时调用,更新电源状态,然后根据不同状态进行不同处理。启动屏保时,先获取系统安装的所有屏保,通过下列代码可以得到我们自己的开发的屏保。然后用户有任何操作,屏保都会停止,实现逻辑是在DreamService里面的。如果没有设置,系统会有一个默认的屏保,使用以下方法可以获取默认屏保。屏保实现充电显示的逻辑在PowerManagerService里面。然后再将屏保设置我们自己开发的。

2024-05-21 10:23:06 404

原创 Android13 救援模式

主要监控系统核心程序出现循环崩溃的时候,会启动该程序,根据不同的救援级别做出一系列操作,看是否可恢复设备,最严重的时候则是通过进入recovery然后提供用户清空用户数据恢复出厂设置解决。这里就调用了PackageWatchdog的onPackageFailure方法,这里逻辑就不细讲了,主要是通过MonitoredPackage做一些crash信息的记录,不同的packageName保存到不同的MonitoredPackage对象中,并通过记录数量以及时间判断是否触发level级别处理。

2024-05-21 10:18:07 768

原创 Android13 新增 Stable AIDL接口

接口只能包含结构化数据。

2023-11-21 10:05:50 2494 1

原创 Android 13 GTS GtsPermissionControllerHostTestCases Test Failed

其实这里我们就能找到问题了,如果一个界面上有两个TextView的名字都是CALENDAR,那这里就不一定会是权限列表的那个TexviewView,接着就不会进到第三个界面,也就会造成测试报错那样,找不到getDenyButton()isChecked,也就终止了测试。可以看到不管点进哪个app,底部都有个TaskBar,而且我们的TaskBar 常驻的app里面刚好有App叫CALENDAR,这就会导致我们在测试的时候,第二个界面就会点击到底部TaskBar的CALENDAR。这就是我们测试失败的原因。

2023-11-03 16:02:41 547

原创 GTS GtsUnofficialApisUsageTestCases Failed

但是我们发现这些原生的应用肯定是调用了这些api,并且我们没有源码,所以修改不了。Android P以后调用非 SDK(包括深灰名单、黑名单)接口的所有应用都将受到影响,Google提供的工具veridex 可以检测app是否调用了这些api,其内含有一个appcompat.sh ,我们可以看GTS也是使用该脚本。当然网上也有人说,在google play store里面更新这些app,是一样的效果,更新这些app以后,这些app的目录变为了data/data/xxx 这样,所以也算跳过此项了。

2023-10-31 19:29:56 847 3

原创 Android 13 Ethernet变更

(2)移除源码中限制接口的版本号 目前我采用的是二,但是如果项目需要过gms认证,则只能使用一,因为gms合入mainline,packages\modules\Connectivity生成的jar会被覆盖。以太网相关的功能在Android12 和13 网络部分变化是不大的,Android11 到Android 12 网络部分无论是代码存放目录和代码逻辑都是有较多修改的,主要包括以下几个部分。这个是新增的接口方法 setEthernetEnabled ,之前是要自己实现有线网开关的。

2023-08-28 11:04:09 2248 2

原创 展锐Android 10平台OTA升级

展锐OTA升级

2022-12-12 13:50:34 2499 1

原创 Android10 设置默认Launcher

Android 设置默认launcher

2022-12-12 13:32:50 5901 3

原创 Android 10 去除android正在启动弹窗

Android系统优化

2022-12-12 13:26:10 3238 2

原创 Android 11默认横屏(高通)

Android系统默认横屏

2022-12-12 13:23:59 3016

原创 展锐平台 Android 10.0 OTA升级开机Logo

展锐OTA升级

2022-12-12 13:16:12 1076

原创 OTA包编译报错:ExternalError: Failed to run signapk.jar: return code 1:Error: A JNI error has occurred

Android 11在做OTA整包的时候,报错:ExternalError: Failed to run signapk.jar: return code 1:Error: A JNI error has occurred, please check your installation and try againException in thread "main" java.lang.UnsupportedClassVersionError: com/android/signapk/SignApk

2021-11-03 10:03:31 1461

原创 Android 11 拨号代码流程。

主页面:packages/apps/Dialer/java/com/android/dialer/main/impl/MainActivity.java通过OldMainActivityPeer/NewMainActivityPeer,来控制加载不同的fragment。拨号界面:DialpadFragment快速拨号界面:OldSpeedDialFragment通话记录界面:CallLogFragment通讯录界面:ContactsFragment下面是拨号代码流程,只简单记录整体流

2021-09-17 14:36:17 1467 7

原创 Android OTA升级(非A/B系统)

包括:OTA介绍,OTA差分包制作,Android系统分区,Android启动流程,Android Recovery模式介绍。详情请见云笔记:https://note.youdao.com/s/Vy5ubsof每日语录:今年是转折的一年,我也正式从App开发步入了Framework开发。这是新的旅程,对于这条路,有很多未知,但是更多的是兴奋。对知识的渴望大于恐惧。踏入的时候,就深感自己的无知。之前做app的时候,一个bug就是一个bug,解决了就解决了,不会牵扯太多。但是现在,一个bug经常花上俩三

2021-08-23 11:32:42 551

原创 Android 魅族手机裁剪resultCode 为0,data 为null

用户反馈,在魅族手机,裁剪照片一直失败,app的正常需求是选择照片,然后去裁剪,裁剪完,显示出来,但是有的用户选择完照片没有去裁剪。经过调试,发现,选择照片这一步是没问题的,但是在去调用系统的裁剪的时候,resultCode 为0,且data一直为null.其实,魅族手机调用系统的拍照,返回的data也是null,但是至少resultCode是1 也就是Result_OK 这个的解决办法需要我们调用系统拍照的时候,传入一个路径就可以解决(详情请见下面的demo)但是选择照片去裁剪的时候,resultCo

2020-06-19 18:23:48 1098

原创 Android EventBus Subscriber class XXXActivity has no public methods called onEvent

错误信息:Caused by: c.a.a.g: Subscriber class XXXActivity has no public methods called onEvent.造成这个错误的原因有两个:A:接受Event的页面,写了EventBus.getDefualt().register(this),但是在这个页面里却没有定义一个以 onEvent开头的、非静态的、publi...

2020-03-19 11:56:15 984

原创 Android 页面跳转,前面一个页面都销毁了,导致报错

问题描述:A页面有个按钮,选择图库照片裁剪,然后显示出来,一个简单的功能,在一个小米9的手机上报错。裁剪照片一直提示:"保存时发生错误,保存失败"。问题分析:首先这个提示是系统给出的,所以是我们给系统一个错误的信息,导致系统给出了这样的提示。选择图片这一步肯定是没有错的,因为这一步我们没有给系统任何数据,应该裁剪图片时候出错了,因为在这一步,我们需要给一个裁剪的以后应该保存的路径,裁剪的代码为...

2019-12-30 16:22:28 2158 3

原创 Android activeandroid 唯一约束

1:在之前的关于activeandroid的基本使用中讲,为了保持数据的唯一性,可以增加唯一的约束@Column(name = "person_id",unique = true)private int personId;当时没仔细说,其实只加了这个唯一约束,只能保证具有相同的personId的只有一条数据,但是却不能及时更新。假设数据库里存了一条personId为1的数据,下一次,我...

2019-10-17 18:08:04 502 2

原创 Android 文件下载,根据url获取真正的文件名和后缀名(包括重定向的url)

Android文件下载时,有时候我们需要根据url拿到要下载文件的名字和后缀。url分两种,一种是静态url:即url后面就是文件名,例如:https://qd.myapp.com/myapp/qqteam/AndroidQQ/mobileqq_android.apk (qq)这个时候,我们可以直接截取最后一个'/'然后拿到文件和后缀。但是另一种url是接口地址,对应云端程序会响应并...

2019-09-09 16:38:53 8450 5

原创 Android activeandroid使用

activeandroid是一个开源的数据库框架,使我们操作数据库更方便,简单。1:添加依赖:a:在项目的build.gradle文件添加:allprojects { repositories { google() jcenter() mavenCentral() maven { url "https://oss...

2019-08-15 17:33:52 2730 2

原创 Android 多语言适配

最近在做App的多语言适配,特此记录一些多语言适配需要注意的地方。1:关于布局:因为各国语言的长短,高低不同,所以我们在布局时,就不能只考虑中文的情况,假设TextView的宽度,和高度,最好能留出足够的空隙,考虑到,如果字数太多的情况,处理的方法一般为a:可以接受省略显示的就省略。android:singleLine="true"android:ellipsize="end"...

2019-07-04 15:51:04 2424 2

原创 Android 4.4TextView 在xml里面设置onClick点击事件没有响应

在Android4.4也就是sdk19的手机上。TextView的OnClick点击事件没有响应xml:<TextView android:id="@+id/tv_test" android:layout_width="match_parent" android:layout_height="wrap_content" ...

2019-04-11 17:50:21 1938 2

原创 RecycleView 屏蔽item中嵌套的RecycleView的点击事件

RecycleView嵌套RecycleView,外层的是RecycleView1,内侧的是RecycleView2,RecycleView1是垂直的列表,RecycleView2是网格布局,直接是itemView ImaegView.现在想要屏蔽ImageView的点击事件。也就是将点击事件交给RecycleView1的ItemView。两种方法:1:在RecycleView1的Item...

2019-04-04 18:00:27 4814 4

原创 Android studio编译报错:ERROR: Unable to resolve dependency for ':app@playDebug/compileClasspath': Could

今天加了一个maven仓库,然后再编译的时候,报错:ERROR: Unable to resolve dependency for ':app@playDebug/compileClasspath': Could not resolve com.android.support:support-v4:[22,23).Show DetailsAffected Modules: appE...

2019-03-12 18:24:35 3377 1

原创 Android studio gradle升级到4.10.3,以后找不到R文件

项目的gradle 升级到了4.10.3,所以我本地也跟着升级了下。一切都下载好。配置好。build成功了,可是却找不到R文件。更奇怪的是项目可以正常运行。控制台只是输出了如下警告:API 'variant.getExternalNativeBuildTasks()' is obsolete and has been replaced with 'variant.getExternalNat...

2019-02-25 10:54:26 2215 2

原创 release版本下Gson 解析出的数据为null.

问题描述:debug下gson解析一切正常,但是发了release版本的时候,发现解析出来的数据全部是null.问题原因:因为release版本下用了混淆,而gson解析需要的javabean,我忘了忽略混淆了,导致被混淆后,无法正正常解析.问题解决:把javabean加入避免混淆。我需要忽略的javeBean是静态内部类。写法:写上类的绝对路径,类名 ,$ ,再就是内部类名称。...

2018-12-18 15:50:05 1937 1

原创 Android uri转真实路径。

在华为手机上选择图片的时候。拿到一个这样的路径:(华为手机进打开图库-》下载内容-》browser-》图片收藏-》选择图片)content://com.android.providers.downloads.documents/document/raw:/storage/emulated/0/Download/browser/图片收藏/200832810200350_2.jpgemmm....

2018-09-28 17:05:17 26598 18

原创 关于java转义字符\解析。

关于java的转义字符我一直有疑问。之前都没有仔细研究过,模糊的用过。今天刚好有时间就仔细研究了下。下面是一段后台返回的json字符串: String jsonStr="{\\\"爆发训练(休息8s)\\\":\\\"24次,3组\\\",\\\"初级肌力(休息7s)\\\":\\\"14次,2组\\\"}"这样一段的字符串需要解析出来。首先我们需要把转义的\去掉。然后才能转换成J...

2018-09-20 15:06:27 4835 1

原创 Android 解析key不固定,或者key为中文的变态json

不知道是后台傻还是我见识少。有同学碰到了一串这样的json:{ "爆发训练(休息8s)": "32次", "初级肌力(休息7s)": "13次", "中级肌力(休息7s)": "7次"}第一想法。这是啥傻后台!后台改!解析不了!!!可是那个同学说。后台是不可能改了。问了ios.ios可以解析。这明显是挑衅...呵。以为我会上当。好吧。你赢了,我一定要解析出来。。。。(

2018-09-18 18:00:30 2120 7

原创 Android 7.0及其以上系统安装安装包时候提示:解析安装包失败

源码链接:DownLoadManager下载demo,适配7.0,8.0 我们知道 从7.0以后。Android对隐私的保护力度也越来越大。从Android6.0引入的动态权限控制(Runtime Permissions)到Android7.0的“私有文件夹被限制訪问”,“StrictMode API 政策”。这就要求我们需要我们在安装应用的时候做一些适配.7.0之前:Int...

2018-08-15 17:16:24 6965 1

原创 Zxing 生成二维码和条形码去掉白边

源码下载:https://github.com/AndroidZmm123/ZxingApplication需求:根据输入内容,生成条形码或者二维码。我们大多数会选择Zxing。因为jar包较小。且使用简单。根据内容生成二维码的工具类也是一搜一大堆。上面的源码里面也提供了一个。但是我们仔细看了下。会发现。不管生成的是条形码还是二维码都会有一部分的白边。如图:我们可以看到周围有白...

2018-08-13 16:51:22 14512 4

原创 Android build successfully 但是运行的地方就报:Error running 'demo': Please select Android SDK

运行demo的时候。 build successfully了但是。运行那里却有个小红叉叉。。然后点击运行:报错:    Error running 'demo': Please select Android SDK clean了。rebuild了。都没有作用。最后看到一个解决办法是:在你的。app下面的app.iml里面看下:有没有下面这句话。 &lt;orderEntry t...

2018-07-20 16:48:23 1074

原创 Android getIntent.getString();为空

今天一个同学问我。说我明明在上一个页面通过intent.putExtra("key ","123");传值了。但是在第二个页面通过getIntent().getStringExtra("key")一直为空。。。问为什么。。。。咦。为什么呢。。我也看了半天。确认确实传值了。intent里面确实有。那为什么取不到呢。。。那答案就只有一个。那就是。存进去的key和取出来的key不一样。。。仔细一看。。果...

2018-07-19 16:31:05 4272 2

原创 Android 7.0及其以上系统拍照,打开相册,裁剪,报错: android.os.FileUriExposedException: file:///storage/emulated/0/.....

全部代码:点击下载Android 7.0以上的系统。在拍照的时候。报错:android.os.FileUriExposedException: file:///storage/emulated/0/Android/data/XXX/files/avatar.jpg exposed beyond app through ClipData.Item.getUri()在网上查一下就可以知道。这是Andr...

2018-07-13 16:31:57 25885

原创 jdk10.0.1使用keytool -v -list -keystore xxx.jks拿不到Md5值

今天在使用命令行;keytool -v -list -keystore xxx.jks想要拿到该签名文件的md5值时。返回的却是:我们发现只有SHA1和SHA256的值。没有MD5值。很纳闷。反复确认不是我命令写错了。把签名文件也发给朋友测试了下。他们都可以拿到。只有我拿不到。。我在我的命令行输入:java,javac,java -version都可以正常运行。说明我的环境没有任何问题。弱小.无助...

2018-06-26 15:40:26 17310 11

原创 Android Studio报错: - debugApiElements - debugRuntimeElements - releaseApiElements - releaseRun

用Android Studio3.1打开很久以前的项目的时候报错哦: - debugApiElements - debugRuntimeElements - releaseApiElements - releaseRuntimeElementsAll of them match the consumer attributes: - Configuration 'debugApi...

2018-06-15 17:06:52 3883 3

空空如也

空空如也

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

TA关注的人

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