自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

淡定的人的博客

请输入博客描述

  • 博客(76)
  • 资源 (12)
  • 问答 (6)
  • 收藏
  • 关注

原创 生成平滑圆角

【代码】生成平滑圆角。

2023-03-19 11:30:13 461

原创 总结 : 线程池

线程池体系线程池原理注意事项

2022-06-16 18:53:40 240

原创 DVM,ART,JVM之间的关系

DVM,ART与JVM区别DVM和ART是谷歌为Android量身定做的java虚拟机,由于android最初设计是用于手机端,对内存要求很高,Android DVM有独有的优化措施Dex文件代替class文件JVM把java源文件转换成.class文件,DVM,ART把class文件进行合并,去除冗余信息,生成DEX文件,文件结构比较紧凑,dex解析的时候,可以减少IO操作,使得查询速度更快Dex文件生成步骤:javac 把源文件编译成class文件1.javac Dex1.java --

2021-12-07 12:06:12 584

原创 总结 ClassLoader

总结了一下Class加载相关的东西

2021-12-06 22:26:35 415

原创 性能优化分析(更新中)

更新日志,分多次更新 2021-10-24 第一个版本 应用层systemtrace tag,systemtrace分析,LayerType离屏缓存相关内容 更新traceView 更新常见内存泄漏,卡顿问题性能优化分析一,内存优化1.查看应用内存概览命令:adb shell dumpsys meminfo + 包名 (该命令会触发GC)adb shell dumpsys meminfo |grep + 包名 (该命令不会触发GC,window用findstr)名

2021-10-24 22:49:04 327

原创 属性动画,插值器,估值器

一,引入属性动画早期Android只有补间动画和帧动画,为了满足各种各样的动画效果,Android推出了属性动画首先说明一下补间动画和帧动画帧动画帧动画,我们从字面意思来理解,帧:就是影像动画中最小单位的单幅影像画面,相当于电影胶片上的每一格镜头。 一帧就是一副静止的画面,连续的帧就形成动画,如电视图象等。简单点说就是类似幻灯片播放的那种效果,因此帧动画的本质就是将一张张的图片,通过代码对这些图片进行连续的活动(这样就形成了动画)补间动画即Tween动画或View动画, 通过对View的内容进行

2020-12-05 20:28:22 289

原创 java一个图片处理

UI请假,没有PS,需要修改图片中所有绿色为蓝色。于是写了一个代码来处理MyImageFactory .javapackage com.can.lib;import java.awt.image.BufferedImage;import java.io.File;import java.io.IOException;import javax.imageio.ImageIO;public class MyImageFactory { public interface Callbac

2020-07-19 01:46:58 203

原创 android studio开发系统应用签名处理

问题来源做系统应用开发,需要配置系统的签名,才能让应用具有系统权限。比如当我们把SystemUI,Setting,Launcher导入android studio编译apk后,编译出来的 apk不是系统签名,是没有办法安装到手机上的。这个时候我们需要对apk进行系统签名。签名方式有两种,一,直接用编译的signapk.jar文件签名。二,用keystore签名一,源码签名在编译android...

2020-02-23 21:40:37 2449 1

原创 自定义VerticalTextView

最近做需求,网上找不到链接,于是自己做一个简陋版的VerticalTextViewGitHub下载链接[email protected]:13540634851/PreferenceDemo.git效果图注意:由于是自定义View,TextView’的属性在这里不管用只有3个方法可用设置显示的字符串,public void setText(String text) ;设置对齐方式...

2019-10-26 22:09:16 1026

原创 Android SVG矢量图

矢量图也称为面向对象的图像或绘图图像,在数学上定义为一系列由线连接的点。矢量文件中的图形元素称为对象。每个对象都是一个自成一体的实体,它具有颜色、形状、轮廓、大小和屏幕位置等属性。Android资源文件中我们可以看见矢量图定义<?xml version="1.0" encoding="utf-8"?><vector xmlns:android="http://schema...

2019-09-06 15:11:06 300

原创 归并排序

直接插入排序难度:★★☆☆☆基本思想利用归并操作实现排序,将两个顺序序列合并成一个顺序序列。先利用递归分治,使得最初单个元素的序列合并,合并后2个元素的有序序列,然后多个序列合并成更大的序列,依次累积成一个序列,最终实现排序.两个归并操作的流程(1)构建一个临时序列,大小为两个序列之后,用来保存归并的数据(2)记录两个序列的初始下标(3)比较序列1第一个元素与序列2第一个元素,如果是...

2019-08-28 11:44:33 386

原创 默认锁屏壁纸无效问题

Android O默认锁屏壁纸无效我们设置android默认壁纸的时候,会替换对应的资源文件,而这个调用资源文件的位置在WallpaperManagerframeowrks/base/core/java/android/app/WallpaperManager.java public static InputStream openDefaultWallpaper(Context contex...

2019-08-24 13:03:09 2775 11

原创 Android Sqlite3学习

一.Sqlite介绍SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,Android使用它保存本地数据安装Sqlite3sudo apt-get install sqlite3Sqlie 支持的基本数据类型类型介绍...

2019-08-21 18:51:42 2212

原创 Android O 新特性 系统主题

一.系统主题介绍android P都已经出来好久了,今天在使用Android P过程中发现在Dislpay下面有一个主题设置(Device theme)如下所示可以看出一个有3个选项,通过使用后发现,他运行用户设置手机主题,跟app主题不一样,这里的主题设置可以供系统以及所有应用查询.系统主题一共有暗和亮两张状态.上面设置中3个选项代表的意义如下:Automatic (base on ...

2019-08-21 15:30:46 1590 1

原创 SystemUI RecentsActivity 分析

SystemUI RecentsActivity 分析功能描述Android在finish结束应用后,之前占用内存不会立即被释放出来。在内存不足的时候,我们可以recent按钮清理后台的应用。点击recent按钮,界面上会显示所有有界面后台的task的栈顶缩微图(Launch不会显示)预先了解ActivityStack,ActivityRecord,TaskRecord关系Activi...

2019-08-14 18:35:20 1770

原创 关闭数据时,为什么有点卡能发送彩信,有的不能?

问题描述:今天有一个项目遇到"有点卡能发送彩信,有的不能"问题,查看MTK FAQ,发现原生android竟然有一个判断,判断运营商是否会对彩信的流量收费,然后决定是否能在关闭数据流量时发送彩信.,可见谷歌针对这个问题还是研究过,但是客户给的APN他们自己的不能保证完全正确,使得谷歌的这个判断经常是错的,于是出现 有的彩信流量免费关闭流量不能发送,反而收费就能发送.于是在不能要到运行商正确的AP...

2019-07-30 17:10:09 635

原创 java1.8 intern方法

请问下面两个输出是什么?答案是:对于s1第一步:s1,首先会在常量池查找hello和word,没有就创建,然后new String,在堆中创建"hello"和"word"字面的对象,然后相加在堆创建"helloword"字面的对象此时堆上有: “hello”,“word”,“helloword"对象,常量池有"hello”,"word"对象第二步,s1.intern(),此时常量池没...

2019-07-10 18:15:34 3779 3

原创 SystemUI锁屏流程

锁屏UI界面SystemUI启动的时候启动各个SERVICE,这些Service不是四大组件的service,这个SERVICE继承SystemUI,实现了start()和onBootComplete方法.其中StatusBar加载了SystemUI几乎全部的界面,其中包括锁屏界面,其中Bouncer是安全锁屏界面,实现类是KeyguardBouncer锁屏加载锁屏加载KeyguardB...

2019-07-09 11:44:16 1993

原创 Android&java基础面试题总结(三)

java基础2 容器类详解容器类继承框架java.util.Collection是一个集合接口。它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式。java.util.Collections是一个包装类。它包含有各种有关集合操作的静态多态方法。此类不能实例...

2019-07-03 19:17:55 186

原创 《SytemUI》利用SystemUI拉起3方应用

简介最近做一个需求需要在Android版本8.1手机上启动一个3方服务.思路客户提供了3应用,没有源码,apk形式,文档上提供的调用方式.步骤很少:检查对应的service是否存在,如果存在就启动服务 public void startGupshupServiceIfNeeded() { Intent implicitIntent = new Intent("xxx...

2019-06-28 18:10:16 409

原创 堆排序

堆排序难度:★★★★☆基本思想二叉堆:叉堆有两种:最大堆和最小堆。最大堆:父结点的键值总是大于或等于任何一个子节点的键值;最小堆:父结点的键值总是小于或等于任何一个子节点的键值。数组表示二叉堆:对于数组按照二叉树从左向右,从上到下依次排列,如图:[0,1,2,3,4,5,6,7,8]堆的根节点(root)为A[0];对这个堆中i节点(从0开始);父节i的左节点,数组对应A[...

2019-06-24 10:55:56 197

原创 《SytemUI》启动流程

简介Android系统中有3个非常重要的应用,分别是SystemUI,launcher,SettingSetting:显示需要用户知道的设置项目,以前让用户配置自己系统的设置launcher:显示所有的应用,展示应用入口SystemUI:显示重要的信息,比如信号,电量,供用户操作的导航栏Android 的 SystemUI 其实就是 Android 的系统界面,它包括了界面上方的状...

2019-06-20 16:28:48 553

原创 理解java Foreach

1,定义容器能够foreach遍历2.分析使用Arraylist foreach遍历时移除数据异常java容器都具有用于遍历数据的foreach功能,如果自己定义一个容器类,如何实现这个语言呢?第一步:实现Iterable接口实现接口就要实现内部的方法(java8 default修饰的方法无需实现)public class ForEachClass<T> implements...

2019-06-18 16:29:39 904

原创 三方应用如何在SystemUI快捷设置中添加快捷开关

功能介绍安装v2rayNg后,android的快捷设置中会有一个快捷开关,以前添加开关都是在SystemUI里面处理的,对于三方应用,SystemUI不能可能事先内置,只可能是SystemUI提供的接口,让开发者能够在SystemUi里面添加这个开关.在android的setting的开发者模式中,有一个Quick setting developer tiles选项,里面有多个调试的开关,打开他...

2019-06-03 15:42:42 4211 3

原创 Android switch控件触发onCheckedChanged引起的bug

问题Switch在调用非手动触发,其他地方setchecked的时候会触发onCheckedChanged,有时候不需要触发这个监听,仅仅是改变check状态;利用buttonView.isPressed()只会在手动的时候才会为true @Override public void onCheckedChanged(CompoundButton buttonView, boolea...

2019-05-30 13:40:35 7406 1

原创 快速排序

快速排序难度:★★★☆☆基本思想设要排序的数组是A[0]……A[N-1],首先任意选取一个数据(通常选用数组的第一个数)作为关键数据(下面代码中排列第一个元素作为这个数),然后将所有比它小的数都放到它左边,所有比它大的数都放到它右边,这个过程称为一趟快速排序。然后对左边和右边进行相同操作。一趟快速排序的算法是:1)设置两个变量i、j,排序开始的时候:i=0,j=N-1;2)以第一个数组...

2019-05-25 17:45:23 104

原创 展讯FOV配置

最近展讯项目测试verfier fov fail,测试的值78.52,但是显示的是74.52,修改fov驱动.于是咨询驱动同事,了解了解决方法.记录如下.找到对应驱动文件vendor/sprd/modules/libcamera/sensor/sensor_drv/classic/Samsung/s5k4e6sub/sensor_s5k4e6_mipi_raw.h其中有这个结构stat...

2019-05-07 20:06:18 858

原创 CTS:9.0R7:android.graphics.drawable.cts.AdaptiveIconMaskTest#testDeviceConfig_iconMask_useRoundIcon

工具:CTS 9.0_R7patch:2019-04-01CtsGraphicsTestCasesandroid.graphics.drawable.cts.AdaptiveIconMaskTest#testDeviceConfig_iconMask_useRoundIconfail:java.lang.AssertionError: expected: rue but was: fals...

2019-04-22 20:09:26 825

原创 ActivityManagerService框架粗略分析

前言AMS是系统的引导服务,应用进程的启动、切换和调度、四大组件的启动和管理都需要AMS的支持。Android应用各个组件都是通过AMS调度,Android进程也是AMS创建,Android应用程序启动之前先启动进程,然后启动对应的ActivityAMS框架从Launcher开始应用启动可以通过adb启动,可以通过其他应用启动(包括Launcher),也可以通过监听广播启动。一般启动一个A...

2019-04-21 16:03:19 1895

原创 在系统服务里面添加方法解决锁屏失败信息不同步问题

问题:在设置里面解锁多次失败后,系统提示30秒之后才能继续做解锁操作。如果此时到锁屏界面,锁屏界面能够做解锁操作。这是不合理的,应该在上次解锁失败30秒之后才能做解锁操作。问题分析:在Setting和SystemUI中,在解锁失败之后会把解锁失败的时间点保存在LockPatternUtils对象中,然后应用判断当前时间与这个之间差是否小于30秒,小于就冻结锁屏的view使之无法解锁,然后倒计...

2019-04-11 16:36:57 428

原创 Android&java基础面试题总结(二)

更新日期2019-4-8volatile关键字volatile:一个线程修改了volatile修饰的变量,其他线程立即可见(可见),volatile修饰的变量在修改之后强制更新到主存,,并让其他线程的这个变量的缓存无效,使得再次向主存读取值。volatile修饰的变量不能保证原子性操作volatile用于作为状态标志位或单例的双重检查这些常用场景。性能优于Synchronized同步。T...

2019-04-10 22:42:03 238

原创 java Lambda表达式

Lambda表达式只能用来简化仅包含一个public方法的接口的创建只能是接口否则报:Target type of a lambda conversion must be an interface只能有一个public方法否则报:Multiple non-overriding abstract methods found xxxpublic class Go { public...

2019-04-09 16:47:47 16053 1

原创 Android&java基础面试题总结(一)

java 创建对象的几种方式采用new通过反射采用clone通过序列化机制面向对象的三个特征封装,继承,多态成员变量,成员变量也称为实例变量,成员变量存储在堆内存的对象中,所以也叫对象的特有数据。静态变量也称为类变量,静态变量数据存储在方法区(共享数据区)的静态区,所以也叫对象的共享数据局部变量只定义在局部范围内,局部变量存在于栈内存中,作用的范围结束,变量空...

2019-04-07 00:52:55 320

原创 直接插入排序

直接插入排序基本思想:将一个记录插入到已排序好的有序表中,从而得到一个新,记录数增1的有序表。即:先将序列的第1个记录看成是一个有序的子序列,然后从第2个记录逐个进行插入,直至整个序列有序为止。要点:设立哨兵,作为临时存储和判断数组边界之用。如果碰见一个和插入元素相等的,那么插入元素把想插入的元素放在相等元素的后面。所以,相等元素的前后顺序没有改变,从原无序序列出去的顺序就是排好序后的顺序...

2019-03-20 23:26:20 161

原创 java final关键字

java final关键字final关键字的定义java中final关键字一旦被赋值就无法改变。final关键字能修饰类和方法,变量(包括对象)。final Person perso;key = new Person("a");key = new Person("b");【错误】 已经在上一步赋值了,final修饰的key不可以再赋值不能改变是key对应"123"的引用不改变,对象里...

2019-03-17 01:06:10 123

原创 Android 9.1 定制开机向导

简介android开机向导一般是谷歌的应用,是没有源码的.但是谷歌提供了接口供OME自定义.能够简单实现在开机向导中增加自己界面的功能.自定义开机向导要两个部分.第一部分是要添加的用户界面.第二部分谷歌提供的客制化接口.需要注意的是不同android版本,可能定制的方法不一样.这里我记录的是android P版本.编写需要加入的界面加入开机向导的界面有以下要求:对应的Activity能够...

2019-03-11 18:11:42 6185 3

原创 android关机流程后

在用户确认关机后,关机流程会走到ShutdownThread中.ShutdownThread包含过具体关机和关机动画处理.ShutdownThread.java public static void shutdown(final Context context, String reason, boolean confirm) { mReboot = false; ...

2019-02-18 11:27:55 887

原创 Android应用程序消息机制

Android线程为了随时接收消失处理,需要一套消息处理机制。应用程序通过消息驱动应用程序运行。Android应用每一个线程通过创建消息队列,然后在无限循环中等待和获取消息队列传递的信息,然后处理。线程都能创建一个消息队列。等待(阻塞中)队列中的消息获取到消息,处理消息回到2相关类:MessageQueue,Looper,Handler主线程的消息队列在系统创建应用程序的时候就配...

2019-02-01 11:57:07 204

原创 android拨打电话无法跳转到通话界面

最近客户要求我们用谷歌的dialer替换原生的dialer,替换之后发现在拨打电话的时候无法跳转到指定的界面.通过阅读源码发现,telecom固定的了跳转的界面.packages/services/Telecomm/src/com/android/server/telecom/InCallController.java public InCallController(Context co...

2019-02-01 11:56:33 3485

原创 android Fingerprint属性如何定义

fingprint定义需要按照如下格式:属性变量属性值说明$(PRODUCT_BRAND)ro.build.brand客户名TARGET_PRODUCTro.product.name产品名TARGET_DEVICEro.product.device设备名PLATFORM_VERSIONro.build.version.release安卓版本...

2019-01-25 14:51:00 6630

keytool-importkeypair-master.zip

用于把android源码中x509.pem,pk8文件,签名生成android stduio能用的keystore文件

2020-02-23

展讯FoV计算工具.zip

自己写的展讯FoV计算工具,使用这个工具之前需要知道相机分辨率和像素大小,这些东西在硬件配置信息表里面有。安装过java环境的window和linux系统可以运行

2019-08-29

AppDataBase.java

这是一个Android Sqlite数据库相关的代码,包括增删改查,已经数据库升级,降级的操作,没有时间真机验证,但在linux终端用sqlite3验证过,有实际的问题请提出

2019-08-21

动态壁纸,现在一般只能在原生的机器上用

之前的动态壁纸apk加源码,原生动态壁纸感觉没有多大用,国内厂商屏蔽了原生此功能,所以不能使用不要怪我

2019-08-21

UniversalImageLoader加Volley.zip

Android-Universal-Image-Loader-master 和volley都放在这个包里面.一般配置build.gradle,这里我备份一下

2019-08-21

Setting属性值查找.apk

这是一个查询设置属性的APK,有bug欢迎指出,不一定会改

2019-08-21

动态壁纸测试.apk

这是一个原生动态壁纸的APK,大多数手机的用不了.因为各大厂商都禁掉此功能,然后自己搞了一套

2019-08-21

查看应用信息.apk

这是一个查询手机应用信息的APK,有bug欢迎指出,不一定会改,直接adb可以查询,之前不知道,请百度adb 查看setting属性值

2019-08-21

一个android反编译的工具

本来是转的人家的东西,积分应该是0的,但是CSDN上要求最低为1分。造成的下载麻烦,不管我事。

2018-07-13

截取RGB工具,截取RGB工具

看见一种颜色,但不知道它的RGB值,此程序可以帮你得到,有点像截图。

2015-12-13

unity人物模型,unity人物模型unity人物模型

这是一个unity的模型。里面包含几个动作,学习unity的童鞋可以用它作为练习。 这是一个unity的模型。里面包含几个动作,学习unity的童鞋可以用它作为练习。 这是一个unity的模型。里面包含几个动作,学习unity的童鞋可以用它作为练习。

2015-05-20

C++文件数组方式读取

在一个只有数字和空格的文本里;把文本以数组的方式读入;不过我弄的是变形的数组p[i*N+j]=a[i][j];相当于p代替a; 在文本中行数就是数组的行,最大列数就是数组的列,初学编程练习练习,

2015-05-16

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

TA关注的人

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