- 博客(23)
- 收藏
- 关注
原创 Future
三、增强的Future:CompletableFuture。八、支持timeout的CompletableFuture。二、Futurelistener 任务完成了可以通知你。六、CompletableFuture中的异常处理。七、组合多个CompletableFuture。
2024-03-01 13:16:19
504
原创 三方应用在Settings里显示
二、如果需要在settings里控制三方应用的显示可以在这里过滤。四、在Android 13 上不生效,可能是如下原因。一、在AndroidManifest.xml里添加。
2024-02-19 13:10:00
781
1
原创 JobSchedulerService
1、xxxService继承JobIntentService后,在外面调用 xxxService 的enqueueWork。2、enqueueWork的调用流程。10 JSS 调用回APP里。
2024-01-28 18:20:30
785
1
原创 PermissionPolicyService
11 permissionControllerManager intent就是这里传入的了,这个SERVICE_INTERFACE = "android.permission.PermissionControllerService"就是调用远程的服务。3 这里的task.mDelegate 现在就是job了只有它,看它在哪里执行的,enqueue(task)1 这里的future.complete不执行下面的future.get会一直阻塞,导致ANR。10 intent 在这里传入 的。
2023-06-04 22:08:16
963
原创 Thermal JobSchedulerService
二、Thermal 3、mThermalStatus这里要是大于门槛值并且返回true,jobservice就会被限制: ThermalStatusRestriction.java。五、Thermal 5、这里给listener传递的status。六、Thermal 6、这里从hal调用上来通知状态改变。一、Thermal 2、问题发生是的log打印地方。三、那么mThermalStatus 哪里来的呢?###手机会觉得热么?
2023-06-04 22:07:59
361
原创 linux文件组
linux文件组 avc: denied { dac_read_search } for capability=2 scontext=u:r:xxx:s0 avc: denied { dac_override } for capability=1 scontext=u:r:xxx:s0 tcontext=u:r:xxx:s0 tclass=capability permissive=0 1、当报这种dac的 avc selinux权限是一般是因为不在同一个用户组导致的无法访问。 2、我们可以查看需要访
2022-01-08 10:48:15
3056
原创 databinding
databinding 一、使用 <?xml version="1.0" encoding="utf-8"?> <layout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools"> <!--ZSG xm
2021-08-01 15:09:25
263
原创 Viewmodel
Viewmodel 总结: viewmodel 在横竖屏切换的时候会被保存在ActivityThread里,在destroy的时候保存,在launcher的时候可以通过getlast…获取。
2021-07-25 13:26:22
190
原创 AS编译系统应用
AS编译系统应用 三部曲: 一、生成系统签名 二、导入源码,用gradle配置 三、配置依赖jar包 一、 1、生成签名 部分的系统 App 有在 Manifest 中加入了 sharedUserId 标签: android:sharedUserId="android.uid.systemui" 此时如果 APK 没有当前系统的签名,是无法安装和使用的,因此需要获取得到系统的签名。 在源码的 build\target\product\security 目录下,可以得到 platform.pk8 和 pla
2021-07-10 16:46:44
1257
原创 recycleview吸顶
package com.example.recycleviewitemdecor; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Rect; import android.view.View; import androidx.annotation.Non
2021-07-10 16:18:25
166
原创 游动的鲤鱼
游动的鲤鱼用Drawable画,然后用控制imageview的位置 一、Drawable package com.example.fish; import android.animation.ValueAnimator; import android.graphics.Canvas; import android.graphics.ColorFilter; import android.graphics.Paint; import android.graphics.Path; import android
2021-07-10 16:13:19
143
原创 viewpager文字渐变指示器
viewpager文字渐变指示器 //ZSG 一、 // 切换fragment 四部曲,一个FragmentManager 三个事物(和GIT的提交很像begin后,add,commit) FragmentManager fragmentManager = getSupportFragmentManager(); FragmentTransaction transaction = fragmentManager.beginTransaction(); transaction.add(R.id.framela
2021-07-10 16:06:19
259
原创 Android studio
一、Gradle’s dependency cache may be corrupt (this sometimes occurs after a network connection timeout.) 将gradle/wrapper/gradle-wrapper.properties里的distributionUrl换成OK的项目等URL
2021-06-14 20:43:45
111
原创 Parcelable && Serializable
Parcelable Parcelable是一写一读两构造 写:writeToParcel 读:Creator静态内部类 两构造:一个用来外部new对象,一个给Creator用来构造对象 package com.zsg.myparcelble; import android.os.Parcel; import android.os.Parcelable; import java.util.ArrayList; public class MyParcelble implements Parcelable {
2021-05-14 16:51:54
246
原创 Lifecycle&livedata
Lifecycle原理 lifecycle通过观察者模式加反射注解模式实习对生命周期的监听。其中实现了LifecycleOwner的为被观察者,实现了LifecycleObserver的微观察者,通过在被观察者中 getLifecycle().addObserver(new TestPresenter()); 实现绑定。 一 、LifecycleObserver被观察者 @OnLifecycleEvent(Lifecycle.Event.ON_CREATE) public void onCreateX(Li
2021-04-12 19:51:33
392
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅