- 博客(1897)
- 资源 (15)
- 收藏
- 关注
原创 android adb命令获取处于当前屏幕的Activity
Android adb shell dump当前手机设备的所有activity_zhangphil的博客-CSDN博客。adb命令:adb shell dumpsys activity activites。android adb命令获取处于当前屏幕的Activity。从顶至底,#0 0号即为当前屏幕显示的界面数据。
2023-07-21 23:13:31 3065
原创 Android dp to pix resources.getDimension(R.dimen.xxx) ,kotlin
Android官方的dip to pix,dip2pix,dp2px实现网上流传的一个常用的把dip值转换为pix像素值的方法通常是这样的: public static int dip2px(Context context, float dpValue) { float scale = context.getResources().getDisplayMetrics().de..._dip2px。Android pix转换为sp_pix转sp_zhangphil的博客-CSDN博客。
2023-07-20 23:15:54 397
原创 Android GlideApp GlideRequest FixedPreloadSizeProvider RecyclerViewPreloader,kotlin
【代码】Android Paging 3,kotlin(1)在实际的开发中,虽然Glide解决了快速加载图片的问题,但还有一个问题悬而未决:比如用户的头像,往往用户的头像是从服务器端读出的一个普通矩形图片,但是现在的设计一般要求在APP端的用户头像显示成圆形头像,那么此时虽然Glide可以加载,但加载出来的是一个矩形,如果要Glide_android 毛玻璃圆角。《Android图片加载与缓存开源框架:Android Glide》Android Glide是一个开源的图片加载和缓存处理的第三方框架。
2023-07-19 23:11:48 227
原创 android studio/idea返回/前进上一次位置和一些高效快捷键
当android studio新建一个项目时候,默认的.gradle路径均认为是在c盘的用户目录下,时间久了,c盘容量紧张。后续新建android studio项目的gradle加载文件会自动放在D:/program/android.gradle下。最新版的android studio自带有手机投屏功能,设置后直接在android studio里面就可以“实时”投屏并操控手机。android studio自带手机投屏功能_android studio 投屏_zhangphil的博客-CSDN博客。
2023-07-18 23:06:24 1662
原创 Android Glide onlyRetrieveFromCache downloadOnly submit ,kotlin
【代码】Android Paging 3,kotlin(1)在实际的开发中,虽然Glide解决了快速加载图片的问题,但还有一个问题悬而未决:比如用户的头像,往往用户的头像是从服务器端读出的一个普通矩形图片,但是现在的设计一般要求在APP端的用户头像显示成圆形头像,那么此时虽然Glide可以加载,但加载出来的是一个矩形,如果要Glide_android 毛玻璃圆角。《Android图片加载与缓存开源框架:Android Glide》Android Glide是一个开源的图片加载和缓存处理的第三方框架。
2023-07-17 23:02:42 457
原创 Android CoroutineScope Dispatchers.Main主线程delay,kotlin
coroutineScope 创建独立协程作用域,直到所有启动的协程都完成后才结束自己。runBlocking 和 coroutineScope 很像,它们都需要等待内部所有相同作用域的协程结束后才会结束自己。两者主要区别是: runBlocking 阻塞当前线程,而 coroutineScope不会,coroutineScope会挂起并释放底层线程供其它协程使用。kotlin协程coroutineScope。kotlin协程coroutineScope_zhangphil的博客-CSDN博客。
2023-07-16 23:08:40 536 1
原创 Android Glide同步阻塞方式submit获得Bitmap,kotlin
【代码】Android Paging 3,kotlin(1)在实际的开发中,虽然Glide解决了快速加载图片的问题,但还有一个问题悬而未决:比如用户的头像,往往用户的头像是从服务器端读出的一个普通矩形图片,但是现在的设计一般要求在APP端的用户头像显示成圆形头像,那么此时虽然Glide可以加载,但加载出来的是一个矩形,如果要Glide_android 毛玻璃圆角。《Android图片加载与缓存开源框架:Android Glide》Android Glide是一个开源的图片加载和缓存处理的第三方框架。
2023-07-15 23:16:32 1037
原创 kotlin forEach循环return/break
kotlin forEachIndexed arrayListOf<String>_zhangphil的博客-CSDN博客。Python for循环中的zip_python zip函数用于for循环_zhangphil的博客-CSDN博客。kotlin forEach循环return/break。
2023-07-14 23:41:42 1302
原创 Android Glide preload CustomTarget bitmap into LruBitmapPool,kotlin
【代码】Android Paging 3,kotlin(1)在实际的开发中,虽然Glide解决了快速加载图片的问题,但还有一个问题悬而未决:比如用户的头像,往往用户的头像是从服务器端读出的一个普通矩形图片,但是现在的设计一般要求在APP端的用户头像显示成圆形头像,那么此时虽然Glide可以加载,但加载出来的是一个矩形,如果要Glide_android 毛玻璃圆角。《Android图片加载与缓存开源框架:Android Glide》Android Glide是一个开源的图片加载和缓存处理的第三方框架。
2023-07-13 23:04:21 649
原创 Android NestedScrollView包裹RecyclerView高度撑满所有item,kotlin
会使得RecyclerView加载完成所有itemCount的数理,撑满整个RecyclerView高度,这深深改变了RecyclerView只加载显示当前屏幕可见区域的特性,此时RecyclerView一次性加载全部item。Android NestedScrollView包裹RecyclerView高度撑满所有item,kotlin。当用NestedScrollView包裹RecyclerView后,
2023-07-12 23:32:59 1656
原创 Android Glide CustomTarget ,kotlin
【代码】Android Paging 3,kotlin(1)在实际的开发中,虽然Glide解决了快速加载图片的问题,但还有一个问题悬而未决:比如用户的头像,往往用户的头像是从服务器端读出的一个普通矩形图片,但是现在的设计一般要求在APP端的用户头像显示成圆形头像,那么此时虽然Glide可以加载,但加载出来的是一个矩形,如果要Glide_android 毛玻璃圆角。《Android图片加载与缓存开源框架:Android Glide》Android Glide是一个开源的图片加载和缓存处理的第三方框架。
2023-07-11 23:09:51 1762
原创 Android Glide预加载preload ,kotlin
【代码】Android Paging 3,kotlin(1)在实际的开发中,虽然Glide解决了快速加载图片的问题,但还有一个问题悬而未决:比如用户的头像,往往用户的头像是从服务器端读出的一个普通矩形图片,但是现在的设计一般要求在APP端的用户头像显示成圆形头像,那么此时虽然Glide可以加载,但加载出来的是一个矩形,如果要Glide_android 毛玻璃圆角。《Android图片加载与缓存开源框架:Android Glide》Android Glide是一个开源的图片加载和缓存处理的第三方框架。
2023-07-10 23:02:13 1335
原创 git HEAD detached from
如果要经过gerrit进行code review,则为:git push origin HEAD:resf/for/我的分支名...git命令:git reset --hard commit-id可以通过git log输出查找。git gerrit code review提交代码HEAD:resf/for/_res/for的提交格式_zhangphil的博客-CSDN博客。git回退代码仓库版本_git回退提交到本地仓库代码_zhangphil的博客-CSDN博客。
2023-07-09 23:24:38 327
原创 Android Glide预加载RecyclerViewPreloader,ViewPreloadSizeProvider,kotlin
【代码】Android Paging 3,kotlin(1)在实际的开发中,虽然Glide解决了快速加载图片的问题,但还有一个问题悬而未决:比如用户的头像,往往用户的头像是从服务器端读出的一个普通矩形图片,但是现在的设计一般要求在APP端的用户头像显示成圆形头像,那么此时虽然Glide可以加载,但加载出来的是一个矩形,如果要Glide_android 毛玻璃圆角。《Android图片加载与缓存开源框架:Android Glide》Android Glide是一个开源的图片加载和缓存处理的第三方框架。
2023-07-08 23:13:05 982
原创 Android Glide自定义AppGlideModule,让Glide在app启动后基于定制化GlideModule加载,kotlin
在实际的开发中,虽然Glide解决了快速加载图片的问题,但还有一个问题悬而未决:比如用户的头像,往往用户的头像是从服务器端读出的一个普通矩形图片,但是现在的设计一般要求在APP端的用户头像显示成圆形头像,那么此时虽然Glide可以加载,但加载出来的是一个矩形,如果要Glide_android 毛玻璃圆角。《Android图片加载与缓存开源框架:Android Glide》Android Glide是一个开源的图片加载和缓存处理的第三方框架。
2023-07-07 23:30:25 1695
原创 fun函数方法体=返回值,kotlin
一般编程的技法,比如,在Android中,假设在主线程中实现了一个函数,但该函数是耗时操作,毫无疑问,需要将这个函数的实现切入非主线程中操作,那么可以设计一种托管的函数,在托管的函数里面干脏活,处理完成后,把结果抛到主线程。匿名函数:name:zhangphil,age:18,msg:kotlin。_kotlin 函数返回。kotlin函数返回函数_kotlin 函数返回_zhangphil的博客-CSDN博客。kotlin把函数作为参数转递给另一个函数_zhangphil的博客-CSDN博客。
2023-07-06 23:12:12 658
原创 Kotlin单例模式的一种懒汉模式写法
kotlin中很容易使用object实现java中的单例模式。kotlin用object实现单例模式,companion object与java静态。kotlin用object实现单例模式,companion object与java静态_zhangphil的博客-CSDN博客。kotlin用object实现单例模式,companion object与java静态。kotlin用object实现单例模式,companion object与java静态_zhangphil的博客-CSDN博客。
2023-07-05 23:11:05 938
原创 Android Stuido Proguard Retrace Unscrambler直接reProguard反混淆retrace日志
(3)Proguard Retrace Unscrambler / Proguard Unscramble选择其中一个。Android Stuido Proguard Retrace Unscrambler直接reProguard反混淆retrace日志。
2023-07-04 23:11:06 456
原创 Android RecyclerView AsyncListUtil手动刷新fillData,kotlin
基于Android官方Paging Library的RecyclerView分页加载框架我之前写了一篇RecyclerView分页加载机制的文章,是基于Android官方的AsyncListUtil实现的,详情见附录文章1。基于Android官方Paging Library的RecyclerView分页加载框架我之前写了一篇RecyclerView分页加载机制的文章,是基于Android官方的AsyncListUtil实现的,详情见附录文章1。【代码】Android Paging 3,kotlin(1)
2023-07-03 23:50:47 459
原创 Android AlertDialog setView,kotlin
Android DialogFragment(1)和过去的AlertDialog类似,Android引入的DialogFragment旨在为开发者提供一个“富”dialog,而不必受到过去Android AlertDialog的局限。Android DialogFragment(2)附录文章1简单介绍了如何实现一个DialogFragment,本文再介绍一种简单的方法:直接重写DialogFragment的onCreateDialog返回一个AlertDialog实现对话框。
2023-07-02 23:54:04 613
原创 kotlin constructor init companion object 与初始化by lazy
kotlin中很容易使用object实现java中的单例模式。由于kotlin中没有static修饰词,可以用companion object实现Java中的static效果。kotlin用object实现单例模式,companion object与java静态。方法 - mymethod。lazy 用于单例模式,当且仅当变量被第一次调用时候,才会执行。耗费很重资源初始化的类。kotlin用object实现单例模式,companion object与java静态_zhangphil的博客-CSDN博客。
2023-07-01 23:03:43 766
原创 Android Studio中配置aliyun maven库
IDEA设置阿里云maven仓库镜像mirror_阿里云mirror-CSDN博客。IDEA设置阿里云maven镜像mirror。重启项目,同步maven即可。Android Studio中配置aliyun maven库。
2023-06-30 23:10:15 2341
原创 kotlin mutableListOf Collection
Java for循环删除ArrayList重复元素陷阱,Iterator迭代器遍历删除重复元素这是一个一不留神就犯下错误的Java列表ArrayList重复删除元素陷阱,并且问题比较隐蔽。Java的Vector,Stack,ArrayList,LinkedList异同Collection的实现子类型是什么,它都支持iterator()函数,该函数返回一个迭代器,该迭代器即可遍历访问Collection中每一个元素。List是有序的Collection。和Set不同,List允许有相同元素。
2023-06-29 23:13:39 661
原创 adb shell top -m 10 -s 1 -d 1 -o %CPU,%MEM,TIME+,PID,COMMAND,CMDLINE
使用Android ADB调试设备,直接在Windows的dos命令窗口输入命名adb即可,如图:为什么执行adb命令后是这样?Android ADB(Andorid Debug Bridge)调试真机设备_adb在线执行器_zhangphil的博客-CSDN博客。Android adb shell dump当前手机设备的所有activity_dump当前activity_zhangphil的博客-CSDN博客。Android adb获取CPU信息_zhangphil的博客-CSDN博客。
2023-06-28 23:04:42 508
原创 try-cacth-finally ArrayIndexOutOfBoundsException,program go on,kotlin
【代码】try-cacth-finally ArrayIndexOutOfBoundsException,program go on,kotlin。
2023-06-27 23:10:14 530
原创 kotlin AtomicBoolean compareAndSet
写一个简单代码:public class Main { private static boolean RUN = true;..._多线程的共享变量必须加volatile。Java多线程同步:为什么要引入volatile?_多线程的共享变量必须加volatile_zhangphil的博客-CSDN博客。
2023-06-26 23:33:07 792
原创 kotlin协程,runBlocking里面的launch
runBlocking 内部启动的3个协程做耗时操作,从输出可以看到3个协程交叉并发执行,runBlocking 会等到3个协程执行结束后才退出,输出结果有明确先后顺序。runBlocking 会等待相同作用域的协程完成才退出runBlocking 本身阻塞线程,但内部运行的协程又非阻塞。kotlin的runBlocking 当内部相同作用域的所有协程都运行结束后,在 runBlocking 之后的代码才能执行, runBlocking 会阻塞所在线程。
2023-06-25 23:08:48 176
原创 viewLifecycleOwner.lifecycleScope生命周期,kotlin
Google I/O 2017 Android官方新体系架构之:LifecycleGoogle官方在2017 I/O大会中引入一些列Android新的体系架构内容,其中有一个是Android的Lifecycle。Lifecycle实现的一个重要目的,是实现Android的与Activity和Fragment生命周期相关的逻辑控制进一步的解耦。Google I/O Android官方新体系架构之:Lifecycle_google i/oandroid_zhangphil的博客-CSDN博客。
2023-06-24 23:13:19 674
原创 Objects isNull requireNonNullElse requireNonNullElseGet requireNonNull,Java
当a不为null时,执行大括号里的语句(it肯定不为null)如果a == null ,则为 null。= null,则a.b()如果 a 不是 b,则为 null。当a不为null时,执行大括号里的语句(it肯定不为null)如果a == null ,则为 null。= null,则a.b()如果 a 不是 b,则为 null。当a不为null时,执行大括号里的语句(it肯定不为null)如果a == null ,则为 null。= null,则a.b()如果 a 不是 b,则为 null。
2023-06-23 23:33:29 408
原创 Android studio设置.m2缓存路径
Android studio默认把.m2缓存放在C盘,时间久了,C盘空间不够,可配置Android studio.m2缓存路径在其他盘。新增一个字段 MAVEN_REPOSITORY,给MAVEN_REPOSITORY设置一个自己指定的存储路径即可。
2023-06-22 23:12:01 676
原创 kotlin协程接收管道ReceiveChannel生产者produce
runBlocking 内部启动的3个协程做耗时操作,从输出可以看到3个协程交叉并发执行,runBlocking 会等到3个协程执行结束后才退出,输出结果有明确先后顺序。runBlocking 会等待相同作用域的协程完成才退出runBlocking 本身阻塞线程,但内部运行的协程又非阻塞。kotlin的runBlocking 当内部相同作用域的所有协程都运行结束后,在 runBlocking 之后的代码才能执行, runBlocking 会阻塞所在线程。kotlin协程管道Channel。
2023-06-21 23:50:16 238
原创 withContext CoroutineScope协程切换,kotlin
runBlocking 内部启动的3个协程做耗时操作,从输出可以看到3个协程交叉并发执行,runBlocking 会等到3个协程执行结束后才退出,输出结果有明确先后顺序。一般编程的技法,比如,在Android中,假设在主线程中实现了一个函数,但该函数是耗时操作,毫无疑问,需要将这个函数的实现切入非主线程中操作,那么可以设计一种托管的函数,在托管的函数里面干脏活,处理完成后,把结果抛到主线程。结果1-a: 5 - tid:22。结果1-b: 5 - tid:24。结果2-a: 9 - tid:22。
2023-06-20 23:13:10 487
原创 Android load all photos into RecyclerView,pinch to zoom by ScaleGestureDetector,kotlin(4)
Android RecyclerView的StaggeredGridLayoutManager实现交错排列的子元素分组先看实现的结果如图:设计背景:现在的产品对设计的需求越来越多样化,如附录文章2是典型的联系人分组RecyclerView,子元素排列到一个相同的组,但是有些时候,UI要求把这些元素不是垂直方向的,而是像本文开头的图中所示样式排列,这就需要用StaggeredGridLayoutMa。在处理大图的浏览查看动作过程中,往往还有其他额外的事情需要处理,典型的以微信。
2023-06-19 23:03:24 151
原创 Android adb shell命令捕获systemtrace
Android ADB调试真机设备Android ADB(Andorid Debug Bridge),是Android开发中有用的测试和调试工具。使用Android ADB调试设备,直接在Windows的dos命令窗口输入命名adb即可,如图:为什么执行adb命令后是这样?Android ADB(Andorid Debug Bridge)调试真机设备_adb在线执行器_zhangphil的博客-CSDN博客。-t 时长,20s,20秒的trace文件。-o 保存文件路径。
2023-06-18 23:05:26 2165
原创 Android PagerSnapHelper改造RecyclerView为ViewPage,kotlin
基于Android官方Paging Library的RecyclerView分页加载框架我之前写了一篇RecyclerView分页加载机制的文章,是基于Android官方的AsyncListUtil实现的,详情见附录文章1。基于Android官方Paging Library的RecyclerView分页加载框架我之前写了一篇RecyclerView分页加载机制的文章,是基于Android官方的AsyncListUtil实现的,详情见附录文章1。【代码】Android Paging 3,kotlin(1)
2023-06-17 23:34:03 1696
原创 android studio自带手机投屏功能
最新版的android studio自带有手机投屏功能,设置后直接在android studio里面就可以“实时”投屏并操控手机。android studio自带手机投屏功能。
2023-06-16 23:06:06 2556
原创 Android ViewPager2嵌套RecyclerView性能优化RecycledViewPool,kotlin
ViewPager2和Fragment新的可见性及懒加载解决方案,旨在解决ViewPager(ViewPager2)只有当前Fragment唯一可见时候网络刷新或绘图。注意:过去的setUserVisibleHint()已被废弃,开发者不要再使用基于setUserVisibleHint()解决Fragment可见性和懒加载(或延迟加载)的场景。ViewPager2和Fragment可见性及懒加载解决方案_viewpager2 懒加载_zhangphil的博客-CSDN博客。
2023-06-15 23:10:27 1006
原创 kotlin协程Job、CoroutineScope作用域,Android
一般编程的技法,比如,在Android中,假设在主线程中实现了一个函数,但该函数是耗时操作,毫无疑问,需要将这个函数的实现切入非主线程中操作,那么可以设计一种托管的函数,在托管的函数里面干脏活,处理完成后,把结果抛到主线程。结果1-a: 5 - tid:22。一般编程的技法,比如,在Android中,假设在主线程中实现了一个函数,但该函数是耗时操作,毫无疑问,需要将这个函数的实现切入非主线程中操作,那么可以设计一种托管的函数,在托管的函数里面干脏活,处理完成后,把结果抛到主线程。
2023-06-14 23:10:37 564
原创 Android语言切换LOCALE_CHANGED与CalendarView,kotlin
Android重写onConfigurationChanged规避横竖屏切换时候重新进入onCreate生命周期Android系统内在的机制,当activity在横竖屏切换时候,会强制重新开始进入activity的生命周期onCreate,在有些特殊的场景,开发者不希望重新进入onCreate生命周期,那么,可以通过重写Android的onConfigurationChanged规避。Android语言切换LOCALE_CHANGED与CalendarView,kotlin。
2023-06-13 23:21:17 451
原创 kotlin协程flow retry功能函数返回失败后重试(4)
一、flow ,emit,onCompletion,collect。kotlin协程flow retryWhen当功能函数加载失败后重试(3)_zhangphil的博客-CSDN博客。kotlin协程flow retryWhen当功能函数加载失败后重试(3)加载一次失败,重试1次成功。kotlin协程flow retry retryWhen(2)_zhangphil的博客-CSDN博客。kotlin协程flow retry retryWhen(2)二、retryWhen。初次加载失败,重试两次成功。
2023-06-12 23:22:38 825
链家2020年9月二手房数据
2020-12-10
strava_com_sample_utf8.xls
2020-12-10
digital-7字体(LED数字样式字体)
2017-09-05
MaterialDesignLibrary_Code and Lib合集
2015-09-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人