自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

xianrenli38的博客

曾梦想仗剑走天涯,后来工作太忙没去

  • 博客(123)
  • 问答 (1)
  • 收藏
  • 关注

原创 android槽位切换

此时已经进入了fastboot,屏幕是黑的。

2023-10-08 14:46:15 3673

原创 android 性能优化

https://zhuanlan.zhihu.com/p/624774048https://www.cnblogs.com/blogs-of-lxl/p/10926824.html使用Android Device Monitor行抓取 Systraceperfettohttps://ui.perfetto.dev/反编译工具

2023-09-15 17:58:34 395

原创 android studio 2022版本 logcat版本

新版本的logcat不适应,想换回老版本,那么如此操作即可。

2023-02-01 19:21:50 567 1

原创 AndroidQ跨应用(进程)启动service

A 应用启动后 将B的servic拉起的方式

2022-12-05 15:23:36 1490

原创 Settings属性读写

Settings系统属性存储均为xml,分三种:global,system,secure

2022-10-31 14:16:16 938

原创 java父类子类调用时序

构造方法导致的异常

2022-09-29 17:01:07 124

原创 ubuntu安装docker

参考文档Docker 是一个开源的容器化平台,它允许你构建,测试,并且作为可移动的容器去部署应用,这些容器可以在任何地方运行。一个容器表示一个应用的运行环境,并且包含软件运行所需要的所有依赖软件。我是想安装android源码查看工具,所以想装个docker。.........

2022-08-26 17:40:23 401

原创 Ubuntu20.04、22.04安装nvidia显卡驱动

ubunt20.04安装显卡

2022-06-13 10:20:53 27925 11

原创 减肥减的是什么

减肥进行中,减肥减去的是什么呢一下观点是个人愚见肥肉水分不良饮食习惯不良作息时间体态体内的酶含量1,2,3,4不用说明了吧,大家都知道啥意思5体态:有时会遇见,设想两个体重相同的人A,B, 不看颜值,A身体体型看着很匀称,B则罗圈腿,驼背,显然A让人更舒适,也更加有美感,这就是体态的异议,或者更加直观点,两个体重一样的女人,A c罩杯 B 飞机场,显然A看着好看.所以有了塑形一说可能是先天的后天的原因,导致身体形态发生了不匀称的发展,大多数后天的是可以矫正,或者完全康复的6体内酶

2022-03-17 10:27:40 448

原创 http2.0

http1.1的弊端浏览器方式一些网站频繁发送请求,造成一家独大其他网站无法使用。或者所有网站都频发发送请求造成用户体验差等等问题。限制每个url同时并发数量提高请求的响应速度。只有一个连接,只有一次tcp三次握手或者tls的7次握手。一个http1.1请求所用的时间,http2.0可以处理三到四个请求。提高服务端与客服端的性能(尤其是大型互联网公司流量很大,如果使用http2.0,可以减少一半的http服务器)如何开启http2.0目标:兼容所有 连接请求,同时可以协议升级采用策略:协商升

2021-11-05 12:09:08 501

原创 编译时注解处理器 ProcessingEnvironment相关方法

ProcessingEnvironment对象是apt的核心工具类ProcessingEnvironment一、简介:ProcessingEnvironment所属模块 java.compiler-------javax.annotation.processing自定义处理器可以使用框架提供的工具来编写新文件,报告错误消息以及查找其他实用程序二、常用方法:返回值方法含义ElementsgetElementUtils()返回一些用于操作元素的实用方法的实现Filer

2021-11-01 14:55:32 1124

原创 在线查看android源码

http://aosp.opersys.com/http://aospxref.com/http://androidxref.com/官网 https://cs.android.com/

2021-10-12 18:55:16 482

原创 android studio插件 统计代码行数

一直好奇 这个插件如何统计代码行数 注释行数 和空行数的,下载其jar包,查看源码发现,是这样的学习下boolean isInComment = false; Integer total = 0; Integer blank = 0; Integer comment = 0; Integer code = 0; try { BufferedInputStream inputStream = ne

2021-10-12 11:19:23 342

原创 android studio gradle插件编写

编写插件第一步:解决插件的 log打印中文乱码问题1 在setting中的配置Settings->File Encodings->IDE Encodeing->UTF-8Settings->File Encodings->Project Encodeing->UTF-82 在 Project 的 build.gradle 添加如下代码:tasks.withType(JavaCompile) { options.encoding = "UTF-8"

2021-10-09 11:34:28 183

原创 判断应用是否为系统应用

android.content.pm.PackageManager pm = ctx.getPackageManager();List<android.content.pm.ApplicationInfo> apps = pm.getInstalledApplications(0); app.flags & ApplicationInfo.FLAG_SYSTEM == 1 //系统应用,反之是第三方app.flags & ApplicationInfo.FLAG_U.

2021-09-30 12:08:46 939

原创 asm ,APT,AspectJ,Javassist

asm ,APT,AspectJ,Javassisthttps://xie.infoq.cn/article/d367c19896e4cef6fbb661cf7https://opensource.sensorsdata.cn/wp-content/uploads/%E7%A5%9E%E7%AD%96%E6%95%B0%E6%8D%AE-Android_%E5%85%A8%E5%9F%8B%E7%82%B9%E6%8A%80%E6%9C%AF%E7%99%BD%E7%9A%AE%E4%B9%A6.pdf

2021-09-06 20:00:59 275

原创 ViewPager2设置overScrollMode无效

通常对于滑动类的View设置 OverScrollMode=“never”,可以去掉滑动到边界时的阴影,但是对于ViewPage2设置OverScrollMode=“never”,却没有效果。View childat = viewPager2.getChildAt(0);if (childat instanceof RecyclerView) { childat.setOverScrollMode(View.OVER_SCROLL_NEVER);}...

2021-08-16 21:20:42 640

原创 偏门面试题

IdleHandler面试官:“看你简历上写熟悉 Handler 机制,那聊聊 IdleHandler 吧?”梗概定义:IdleHandler :是 Handler 机制提供的一种,可以在 Looper 事件循环的过程中,当出现空闲的时候,允许我们执行任务的一种机制。...

2021-08-13 11:57:42 109

原创 android内存管理

普通应用的内存游戏内存官网资料https://developer.android.google.cn/topic/performance/memory-management?hl=nb从游戏的视角看android内存管理https://zhuanlan.zhihu.com/p/370467923https://zhuanlan.zhihu.com/p/372883142//腾讯游戏学院专家:手游开发,该如何做好Android内存优化?https://www.gameres.com/865

2021-08-13 11:36:03 78

原创 android 进程间内存分配

谷歌的文档真是好.让开发者一目了然.在新手或者老手需要查询资料和解决相关问题时,都能第一时间得到背景资料,给解决问题提供参考.我所待过几家大公司,没有一家的文档能向谷歌写的如此之全.国内市面上的不管啥云,还是公开api,文档也不过尔尔.有些甚至不知所云,必须找到对接人才明白api是干啥的.回看谷歌文档:1文档详尽,细节到位.2搜索功能强大国内好多面试的问题,其实官网中都有详细描述.吃了不能翻墙的亏.这种知识点类型的面试题,感觉面试就是玩信息不对称.https://developer.

2021-08-13 10:52:44 135

原创 ConstraintLayout的使用

https://www.cnblogs.com/sjjg/p/14434334.htmlandroidx.constraintlayout.widget.ConstraintLayout

2021-08-12 17:35:25 87

原创 android 动画

一个动画插值器 效果的网站 http://inloop.github.io/interpolator/逐帧动画补间动画属性动画( VectorDrawable、AnimatedVectorDrawable ValueAnimator)属性动画实现的组合动画三方动画库Lottie 简介

2021-08-11 15:23:48 65

原创 名称解释 android中双缓冲

有两个地方用到1 android view的双缓冲绘图技术分析2 SurfaceView的双缓冲机制第一个感觉是伪需求,应用中没有遇见过第二个是适合视频帧的刷新,是SurfaceView内部已经实现的机制

2021-08-03 11:36:23 109

原创 进程间通信

A:作为服务端进程B:作为客户端进程问题场景:服务端进程Crash了,而客户端进程想要调用服务端方法,这样就调用不到了。DeathRecipient对象此时我们可以给Binder设置一个DeathRecipient对象,当Binder意外挂了的时候,我们可以在DeathRecipient接口的回调方法中收到通知,并作出相应的操作,比如重连服务等等。DeathRecipient的使用如下:服务端进程发生了crash,客户端这个时候该怎么办?当然是想办法重新bind服务端了。客户端使用Deat

2021-07-28 11:55:14 200

原创 apk容错

最近做apk 容错的操作由于apk量级比较大,1%的bug率,也会有大批用户发生异常.因此考虑apk容灾.市面上大多数都是使用热更新的方式去补完异常.但这个操作依然要集成三方插件,而且用户如果没有网络,那么依然会崩溃,无法升级.这让我想到了另一个思路.本地熔断控制将应用各个模块分级.根据同一天异常发生次数,来设置不同的运行权限.异常等级分三级:正常级,熔断级,末日级核心模块 是必须运行模块,三级都要运行非核心模块 只有正常级,才运行相关逻辑.一天crash5次进入熔断级crash2

2021-07-27 17:19:28 62

原创 SharedPreferences 存储流程

1 sp的读取sp 以 map形式,在读取时,一次性,整体进入内存.所以 存时会出现两个步骤,更新内存中的值,更新文件中的值.2 sp的清除sp在使用中,如果只删除文件, 那么由于内存中存在map缓存,在更新sp时,源文件中的值依然会被恢复正确的清除sp的方法是sp.edit().clear().commit()//删除内存中的数据context.deleteSharedPreferences()//删除sp文件sp无法跨进程由于读取时,会有内存缓存.在跨进程过程中,并没有通知另一个进.

2021-07-23 18:11:05 364

原创 contentprovider的使用技巧

contentprovider 在query时需要返回一个cursor,好多人一直接的 只有sql数据库才有cursor.其实,使用其他数据时(file,sp),也可以自己在内存中构建一个cursor.MatrixCursor步骤1首先创建一个字符数组,且字符数组的值对应着表的字段,如下://标记列名String[] COLUMN_NAME = { "_id", "name", "price" };步骤2利用MatrixCursor的构造方法,构造一个MatrixCursor,传入的参数

2021-07-19 15:45:06 184

原创 Android11适配 包可见性

Android11的包可见性由于做的是应用商店业务,需要获取 手机中已安装应用的包名和版本号但在11上获取包名和版本号缺失败了问题1: PackageManager.queryIntentActivities()接口在Android11是否可用?Android11中,可以使用此接口。为了功能正常,我们还是需要在manefist中声明。格式如下:<queries> <intent> <action android:name="android.intent.acti

2021-06-10 13:55:50 428

原创 打包流程 编译流程 构建流程

转载自http://www.jianshu.com/p/cc88488e5163, http://www.jianshu.com/p/2a5b1aa91c52大概分为以下几个步骤1、使用aapt工具将res资源文件生成R.java文件2、使用aidl工具将aidl文件生成对应java文件3、使用javac命令编译工程源代码和上面两步生成的文件,生成class文件4、通过dex工具将class文件和第三方jar包打成dex文件5、用aapt工具将res下的资源文件编译成二进制文件,然后将其和上一步

2021-06-08 15:45:27 567

原创 hashmap相关知识点

hashmap相关面试hashmap 在java1.7与1.8的区别hashmap扩容机制(resize)HashMap默认加载因子(loadFactor)为什么选择0.75 和泊松分布有没有关系散列冲突以及解决方案为啥用红黑树不用 平衡二叉树avlJDK8 HashMap底层数组长度,取值2次幂的原因hashmap 在java1.7与1.8的区别什么时候转变为红黑树hashmap扩容机制(resize)什么时候扩容,什么时候缩容?结论 当hashmap中的元素个数超过数组大小*loadFacto

2021-06-04 13:39:22 201

原创 Android Runtime.getRuntime().exec()

getRuntimeRuntime.getRuntime().exec共有六个重载方法:public Process exec(String command)public Process exec(String [] cmdArray)public Process exec(String command, String [] envp)public Process exec(String [] cmdArray, String [] envp)public Process exec(String comma

2021-06-02 21:58:17 5759 4

转载 算法总结

一 冒泡排序重复地走访过要排序的元素列,依次比较两个相邻的元素,如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来2、步骤:比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较//升序public static void order1(int[] a

2021-05-25 14:04:35 61

原创 图形程序接口知多少 | OpenGL、OpenCL、Vulkan、OpenGL ES、WebGL、Metal、Directx

计算机图形程序接口 | Graphics API对于普通的电脑玩家来说这是一个不重要的东西,但对于游戏开发、玩游戏做三维的人来说,这部分知识可能会常常被提及,尤其是涉及到游戏相关的。计算机图形程序接口是一套可编程的开放标准,3D\2D 都需要这部分底层的 API 支持。如果你是一名游戏开发者,没有借助图形 API 来开发游戏的话,这意味着你的游戏想要调用系统硬件(GPU)的时候,这部分的程序需要自己独立开发,这无疑是增加了游戏开发的成本。Graphics API 就是解决这一难题的,开发者只要输入很.

2021-05-13 20:42:01 1069

原创 android 安装apk以及安装失败的监听

监听Apk卸载、改变、及安装在android监听这几种状态,其实是非常简单的,就是利用广播来进行监听以下是和应用程序相关的Broadcast ActionACTION_PACKAGE_ADDED 一个新应用包已经安装在设备上,数据包括包名(最新安装的包程序不能接收到这个广播)ACTION_PACKAGE_REPLACED 一个新版本的应用安装到设备,替换之前已经存在的版本ACTION_PACKAGE_CHANGED 一个已存在的应用程序包已经改变,包括包名ACTION_PACKAGE_REMO

2021-05-13 15:40:13 3395 3

原创 编译原理三大圣经——龙书、虎书、鲸书

编译原理三大圣经——龙书、虎书、鲸书下载1.龙书(Dragon book)书名是Compilers: Principles,Techniques,and Tools作者是:Alfred V.Aho,Ravi Sethi,Jeffrey D.Ullman国内所有的编译原理教材都是抄的它的,而且只是抄了最简单的前端的一些内容。龙书中文版第一版龙书英文版第二版2.鲸书(Whale book)书名是:Advanced Compiler Design and Implementation作者是:St

2021-05-12 12:40:01 2577 1

原创 downloadmanager

使用downloadmanager进行下载权限<!--网络通信权限--> <uses-permission android:name="android.permission.INTERNET"/><!--DownloadManager使用权限--><uses-permission android:name="android.permission.ACCESS_DOWNLOAD_MANAGER" />主要代码如下: //创建下载任务,url

2021-05-11 15:48:57 501

原创 WPF中 x:Name和Name的区别

x:Name : 在window中给控件一个唯一应用名称,可以通过名称来调用该子控件Name: xaml 中有些控件的构造方法中存在该参数,做的事情,就是将 name转变为 x:Name因此x:Name的应用范围更广

2021-05-07 16:38:43 493

原创 URL、URI和URN三者之间的关系

这里

2021-05-07 11:03:23 87

原创 for(;;)和while(true)的区别

结论:for(;;) 比 while(true) 好编译前编译后while (1);mov eax,1test eax,eaxje foo+23hjmp foo+18h编译前编译后for (;;);jmp foo+23h对比之下,for (;;)指令少,不占用寄存器,而且没有判断跳转,比while (1)好。也就是说两者在在宏观上完全一样的功能,但是底层完全不一样,for相对于来说更加简洁明了。...

2021-05-06 14:03:54 244

原创 webrtc资料备忘

Google WebRtc Android 使用详解(包括客户端和服务端代码)https://zhuanlan.zhihu.com/p/82446482WebRTC 框架下的实时视频关键路径WebRTC源码分析三:视频处理流程WebRTC Android APIhttps://www.jianshu.com/p/58ae253940f1

2021-04-29 18:39:33 63

空空如也

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

TA关注的人

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