自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Python常用库函数-random

python random

2024-04-07 21:30:10 303

原创 Python学习笔记,格式化字符

Python字符格式化的方式大全

2024-04-06 14:25:48 217

原创 Android BLE蓝牙扫描系统源码解析学习笔记

Android 蓝牙

2024-04-01 22:17:03 516

原创 Android Paint学习笔记

SumPathEffect:同时实现两种PathEffect效果,将两种效果单独表现出来,再进行合并。ComposePathEffect:组合效果,也就是在第一个效果的基础上再进行变换。1,DashPathEffect实现虚线线条风格,在画笔为非FILL风格时候生效。intervals长度必须不能小于2,用于描述虚线中实现和虚线的宽度值。PathDashPathEffect:实现已指定Path形状的画笔绘制。第二个参数表示绘制两个指定形状的画笔中间间隔。第一个参数表示代表画笔形状的路径。

2024-03-29 23:40:30 232

原创 Kotlin非常用关键字使用记录

实现了将ItemBean数据模型取了一个别名MyBean,后续我们可以像使用别名一样使用他们。2,crossinline 禁止传递给内联函数的 lambda 中的非局部返回。4,infix 允许用中缀表示法调用函数,使函数的调用方式更加简介和个性化。3,expect 将一个声明标记为平台相关,并期待在平台模块中实现。用于实现声明函数或者接口或者抽象类,但是具体实现在具体对应的平台上面。return//直接报错,说不能这么返回。1,typealias 声明一个类型别名。如果改成下面这样就可以。

2024-03-27 23:42:53 265 1

原创 Kotlin特性学习笔记

4,kotlin out 描述的类型只能用于出参,in描述的类型只能用于入参,如果非要,可以添加。//告诉编译器init代码块只执行一次。数值类型操作符(Array type operators)等于和不等于操作符(Equals Operation)比较操作符(Comparison operators)二元操作符( Binary Operators)3,operator修饰方法,表示重写操作符。调用操作符(Invoke operator)1,关键字by修饰类,表示类委托。

2024-01-17 22:51:36 646

原创 Android registerForActivityResults使用详解以及实现原理

/这个分发ActivityResult,主要通过key开判断的,如果处理了就返回true,否则交给父类处理。//需要传递Request用于解析Intent和解析上个Activity返回的结果。//其中mActivityResultRegistry是final变量。//将启动Activiity的key存储起来,用于后面结果回调使用。//以下方法的目的就是创建Intent并启动Activity。//传入启动的Activity信息,来启动Activity。//后面启动Activity调用的方法实现。

2023-11-19 23:46:03 741

原创 Android13版本新特性介绍

其实使用很简单,就是在应用图标xml中新增 monochrome属性,应用就支持了变换带主题的图标。这个方式设置APP默认语言的方式是,在xml目录下面新建resources.properties。以下以围绕使用样例的方式来介绍Android13带来的版本新特性。这个方式可以在APP运行时候指定默认的APP语言,默认是跟随系统。2、在app的gradle脚本的android节点下添加如下配置。3、更快断字,通过向TextView添加如下属性即可实现。文件,填写如下内容即可实现。5、使用精确闹钟的新权限;

2023-11-19 23:14:15 369

原创 Flutter第三方包依赖方式

flutter 依赖

2022-11-12 17:27:14 1330

原创 OkHttp源码分析

OkHttp目前是Android平台主流的网络请求框架,包括最近比较出名的Retrofit网络请求库也是基于OkHttp框架来实现的,我们有必要学习下它的实现原理.我们一般用OkHttp的使用方法如下:private val client = OkHttpClient.Builder().build()val request = Request.Builder() .url(server.url("/")) .header("Accept", "text/plain")

2020-05-28 21:02:02 185

原创 Android Handler消息机制(源码分析)

Handler在Android中的主要作用是解决跨线程通信的问题.它的实现需要以下三个类一起完成Message(消息载体),MessageQueue(消息队列)以及Looper以下我们从常用的sendEmptyMessage方法开始分析它的实现流程. public final boolean sendEmptyMessage(int what) { return sendEmptyMessageDelayed(what, 0); }最终会调到如下方法public

2020-05-22 22:39:21 181

原创 Android系统锁屏启动流程(7.1.0)

我们知道Android系统启动在SystemServer中会启动PhoneWindowManager,在服务启动完成之后会调用它的systemReady方法,我们今天就从这里开始分析系统开机后锁屏界面是如何展示出来的.以下是系统systemReady相关代码/** {@inheritDoc} */ @Override public void systemReady() { ...

2020-03-29 14:55:46 831

原创 Android系统WIFI设置源码解析

Android系统设置界面中的WIFI页面是在packages\apps\Settings\src\com\android\settings\Settings$WifiSettingsActivity,.下面我们对WIFISettingsActivity进行分析.以下是onCreate方法@Overrideprotected void onCreate(Bundle savedState)...

2019-04-16 23:07:01 2637

原创 Launcher3源码简易分析

这是一篇关于Launcher3源码简易分析记录,简单的记录下大致过程,仅供学习记录使用先从入口找到Launcher3的Applicatino入口.LauncherApplication。这里面主要做了两件事情。第一,将应用上下文传递到LauncherAppState对象中,这是个单例对象;第二,实例化LauncherAppState对象;以下是其构造方法 private La...

2019-04-07 15:55:02 608

转载 DataGrip 破解步骤

转载:https://blog.csdn.net/veloi/article/details/71307942 关键两步骤 第1步:将“0.0.0.0 account.jetbrains.com”添加到hosts文件中。(这步很重要,主要是为避免phpstorm联网时注册失效) 如果是Mac 电脑, Windows自行百度吧,hosts文件在 /etc/hosts 第2步:浏览器打...

2018-08-11 17:50:48 18086 2

原创 Android BLE蓝牙使用详解

本篇文章,制作学习记录使用,就简单介绍下在Android端BLE蓝牙通讯。 BLE蓝牙通讯必须建立服务端和客户端。 从讲解之前我们先简单介绍下一下一个类BluetoothManager(蓝牙管理器),BluetoothAdapter(蓝牙适配器),BluetoothDevice(蓝牙设备),BluetoothSocket(蓝牙通讯客户端Socket),BluetoothServerSocket...

2018-04-06 21:48:56 1957 1

原创 Android LayoutInflater工作原理

在Android中LayoutInflater用的地方有很多,它的作用就是将用xm编写的布局文件转换为View对象。今天我们就来分析它的实现原理。我们知道在Activity中我们向其中添加布局是通过setContentView(@LayoutRes int layoutResID)这个方法来添加的,我们今天就从这个地方开始一步一步分析它是怎么将xml描述的view添加到我们的Activity窗...

2018-03-26 22:01:45 244

原创 Android 系统状态栏和导航栏启动流程

我们知道当Android系统启动的时候会启动SystemServer,其中系统的主要服务都是通过它来启动的,本文就从这里开始一步一步研究系统状态栏和导航栏是怎么启动的。首先我们先定位到SystemServer.run()方法中来,如下是方法的定义。private void run() {try {Trace.traceBegin(Trace.TRACE_TAG_SYSTEM_SER...

2018-03-22 20:35:12 1273

原创 Android与JS交互

hello.html Carson_Ho // JS代码 // Android需要调用的方法 function callJS(){ alert("Android调用了JS的callJS方法"); return 11; } Android调用JS方法,有以下两种方式第一种:...

2018-03-11 21:45:02 194

原创 Android属性动画源码分析

属性动画实现主要有以下两个类:ValueAnimator,ObjectAnimator。其中ObjectAnimator是ValueAnimator的子类,下面我们先从ValueAnimator源码开始分析。 获取ValueAnimator实例有多种方式,包括如下ValueAnimator()空的构造方法,多个静态方法:public static ValueAnimator ofInt(int…...

2018-03-03 18:06:53 453

原创 GreenDao3使用完全解析

1,gradle配置(官网样例地址https://github.com/greenrobot/greenDAO/blob/master/examples/RxDaoExample/build.gradle)Module的gradle 里安装如下配置(官方给的配置样例)buildscript { repositories { jcenter() m

2017-05-27 12:08:14 4146 1

原创 Android 分享文件

第一部分:发送简单数据给其他App最简单的方式是通过Intent:比如要分享文本给其他App,可以这样Intent sendIntent= new Intent();sendIntent.setAction(Intent.ACTION_SEND);sendIntent.putExtra(Intent.EXTRA_TEXT, "This is my text to

2017-03-14 11:53:40 1247

原创 Android permission,uses-permission,permission-group,permission-tree,uses-permission-sdk-23的区别

permission :声明一个安全权限,可用于限制对该应用程序或其他应用程序的特定组件或功能的访问。 android:description="string resource"            android:icon="drawable resource"            android:label="string resource"            andro

2017-03-12 12:01:01 1654

原创 Android Content Provider使用

工作这么久了,从来没有在应用中使用过内容提供者,但是内容提供者作为四大组件之一,还是很重要的,今天就抽个时间写篇博客总结一下,加深记忆。首先要想实现内容提供者必须实现ContenProvider和SQLiteOpenHelper.实现如下public class LiteHelper extends SQLiteOpenHelper { public LiteHel

2017-03-12 11:08:24 217

原创 ColorFilter简介

ColorFilter有三个子类分别是PorterDuffColorFilter,ColorMatrixColorFilter,LightingColorFilter.在应用中用到ColorFilter的场景不多,我目前只是在Paint中用到过,通过Paint.setColorFilter(ColorFilter filter)来设置。这三个子类都是通过画笔设置来改变绘制的

2017-03-10 12:18:09 1347

原创 Android中使用Java8 新增语言功能

支持 Java 8 语言功能需要一个名为 Jack 的新编译。Jack 仅在 Android Studio 2.1 和更高版本上才受支持。因此,如果要使用 Java 8 语言功能,则需使用 Android Studio 2.1 开发应用。Android 并非支持所有 Java 8 语言功能。不过,以下功能在开发面向 Android 7.0(API 级别 24)的应用时可用:

2017-03-09 21:27:42 328

原创 Android 特效开源框架

ZuiMeiTAG https://github.com/huage2580/ZuiMeiTAGXyzInfo   https://github.com/zhangxuyang321/XyzInfoToDoList  https://github.com/Yalantis/ToDoListFloatingView  https://github.com/UFreedom/F

2017-03-03 15:21:45 344

原创 Lottie安卓开源动画库使用

Trojx首页关于归档标签Lottie安卓开源动画库使用 发表于 2017-02-06  |   2条评论   |  阅读次数 497碉堡的LottieAirbnb最近开源了一个名叫Lottie的动画库,它能够同时支持iOS,Android与ReactNative的开发.此消息一出,还在苦于探索自定义控件各种炫

2017-02-22 15:58:46 699

原创 Retrofit 学习总结

Retrofit    支持网络请求方式:DELETE,GET,HEAD(注意HEAD方法的返回值类型必须是Void类型),PATCH,POST,PUT,OPTIONS;所有支持的网络请求方式都是通过注解方式来实现的。例如:public interface GitHubService {  @GET("users/repos")  Call> listRepos(@Qu

2017-02-16 16:17:08 289

原创 Android 开发中一些很有用但你不知道的方法

setBackgroundResource(0) 可以移除 View 的背景色Resources.getSystem().getDisplayMetrics().density 可以不用 Context 也能获取屏幕密度哦通过重载 ViewGroup 的 dispatchDraw 可以实现一个简单的蒙版效果。 例如下拉刷新时,可以在 contentView 上加一层遮罩。 canv

2016-12-16 14:31:15 989

原创 Android windowSoftInputMode属性详解

android:windowSoftInputMode=”stateAlwaysVisible” 表示不管当前View有没有输入控件的时候,Activity启动的时候会显示软键盘,并且如果有输入控件的时候,默认会将焦点聚焦到,第一个输入控件上; 再者不管当前View有没有输入控件,Activity从不可见到可见,也会重新显示软键盘,不管Activity由可见变不可见的 时候软键盘时候还处于显示

2016-11-26 20:52:49 501

原创 Android KeyboardView属性详解

【XML属性】API 3android:keyBackground属性说明:设置键的图像。键的图像。 此图像需要是一个StateListDrawable,具有以下可能的状态:normal, pressed, checkable, checkable+pressed, checkable+checked, checkable+checked+pressed。必须引用另

2016-11-22 22:40:59 4436

原创 Android IOC 动态代理实现

先贴上所有代码 布局文件 xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/too

2016-11-18 16:28:44 403

原创 Android 动态热修复

第一步构建有bug的APP代码如下 MainActivity代码如下:public class MainActivity extends Activity { Button btnOpen, btnModify; NullTest nt = new NullTest(); @Override protected void onC

2016-11-18 10:43:52 388

原创 文章标题

1. ** Android IOC框架实现 =============== ** 本文简单介绍下如何实现编译期注解 介绍编译期注解,首先得介绍下如下两个注解 Target注解的功能就是表明你这个注解是用在什么地方的,它的值是一个枚举型   1.CONSTRUCTOR:用于描述构造器     2.FIELD:用于描述域     3.LOCAL_

2016-11-18 00:23:40 191

原创 Android跨应用访问资源启动Activity

第一部分,访问未安装应用的资源文件。   1,建立两个Project,取名一个叫new,一个old。   2,new项目生成apk文件拷贝到手机上面,注意不要拷贝到getFilesDir()指向的目录,apk一到那个目录就损坏,可以拷贝到它的父级目录;   3,接下来就是访问new.apk里面的资源文件了。  访问资源文件的代码如下:try {/**/

2016-11-17 16:28:37 410

原创 Android Studio常用插件整理

1.GsonFormat快速将json字符串转换成一个Java Bean,免去我们根据json字符串手写对应Java Bean的过程。使用方法:快捷键Alt+S也可以使用Alt+Insert选择GsonFormat2.Android ButterKnife Zelezny配合ButterKnife实现注解,

2016-11-15 16:12:28 484

原创 Android内存缓存

support包下的Lrucache源码public class LruCache {    private final LinkedHashMap map;    /** Size of this cache in units. Not necessarily the number of elements. */    private int size;//记录每个缓

2016-11-14 22:36:53 228

原创 Android微信抢红包插件开发

第一步,重写AccessibilityService实现类。重写onAccessibilityEvent(AccessibilityEvent accessibilityEvent)(这个方法是接受系统所有AccessibilityEvent事件接受回调方法)onInterrupt() (反馈中断回调接口)这两个方法第二步,配置AccessibilityService:配置方法有

2016-11-06 23:21:12 387

原创 Menu:Xml属性全解析

第一部分Group属性:android:menuCategory    关键词。它的值对应了Menu类的CATEGORY_*常量,定义了菜单组的优先级。有效值如下: 值 说明container 菜单组是容器的一部分system 菜单组是由系统提供的。secondary 提供给用户的辅助选择的菜单组(很少使用)alternative 基于当前显示的数据来选择操作的

2016-11-02 16:49:58 414

空空如也

空空如也

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

TA关注的人

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