自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(162)
  • 资源 (12)
  • 收藏
  • 关注

原创 Compose 手势处理,增进交互体验

在处理手势时,应将手势处理修饰符尽可能放到 Modifier 末尾,从而可以避免产生不可预期的行为。

2025-02-26 15:27:12 574

原创 Compose 动画,让页面动起来

Compose 动画 可以分为两类: 高级别的 API 和 低级别的 API,高级别的API开箱即用,低级别的API 可以基于协程完成任何状态驱动的动画效果,高级别的API底层都是由低级别API支持的如果想在EnterTransition和ExitTransition之外再增加其他动画效果,可以在AnimatedVisibilityScope内设置transition。添加到transition的动画都会在AnimatedVisibility进出屏幕动画的同时运行。

2025-02-25 23:10:22 676

原创 Compose 组件渲染流程

在传统的view系统中,组件渲染可分为三步:测量,布局与绘制,Compose也遵循这样的分层设计,组件渲染流程分为:组合,布局,绘制。当然也存在特例,比如LazyColumn、LazyRow、BoxWithConstraints等组件的子项合成可以延迟到这类组件的布局阶段进行要自定义固有特性测量,需要实现MeasurePolicy接口,实现相应的 minIntrinsicXX 或者 maxIntrinsicXX 方法即可。

2025-02-20 18:42:21 760

原创 Compose 状态管理与重组

Compose采用了声明式UI开发范式,如果把Compose的执行看作是一个函数,那么状态就是函数的参数,生成的布局就是函数的输出。唯一输入决定唯一输出。

2025-02-20 16:51:25 910

原创 Compose 定制UI视图

新建一个新项目时,Compose会在项目中生成 ui/theme 目录,目录中有四个文件,分别如下Color.kt:颜色配置,使用Color(ARGB)Type.kt:字体配置,使用FontFamily(Font)Shape.kt:形状配置, 使用xxShape,如 RondedCornerShapeTheme.kt:主题配置,包括全局的 颜色,字体,形状及拓展配置。

2025-02-20 12:14:35 1327

原创 Compose 常用UI组件

Compose 预置了很多基础组件,如 Button,TextField,TopAppBar等,他们都是基于 Material Design规范设计等。同时也提供了 Column,Row,Box等容器组件,每个基础组件都有一个Modifier修饰符。

2025-02-20 00:03:08 936

原创 全新的Android UI框架Jetpack Compose

Jetpack Compose 是Android新一代UI框架,采用了 声明式 的开发范式,基于Kotlin DSL打造,并且可以和现有的Android View 体系共存。

2025-02-19 19:35:39 1017

原创 鸿蒙状态管理概述 v2

鸿蒙状态管理 v2 概述与梳理

2025-02-19 16:59:42 1042

原创 鸿蒙状态管理概述

鸿蒙状态管理 概述与梳理

2025-02-19 10:48:20 1010

原创 Android切面编程AOP之AspectJ的使用

概述AOP(Aspect Oriented Programming)面向切面编程。就是:在运行时,动态地将代码切入到类的指定方法、指定位置上的编程思想就是面向切面的编程。使用场景针对很多地方都需要用到的模板代码,我们都可以用AOP来做,比如:日志、性能监控、埋点等。举个列子,很多时候我们需要根据当前网络情况做下一步操作,代码如下: public void checkNetworkNormal(){ if (NetworkUtils.isNetworkAvailable(th

2021-12-12 04:23:19 2833

原创 给Mac 配置多个 Git 账户

经常遇到公司内部使用 gitlab自己的开源项目放在 github学习用的代码放在 imooc而且每个账户可能用户名和邮箱不同使用 https 每次都需要输入密码,操作繁琐,通常会用 ssh通常一台mac配置一个git账户,为了方便操作,就需要配置多个ssh私钥和公钥参考: Mac下配置多个git账户...

2021-10-06 16:27:22 375

原创 kotlin-android-extension 遭废弃,官方推荐使用ViewBinding

KT-42121As the @Parcelize functionality is extracted (KT-42120), the rest of the Android Extensions functionality can be deprecated in favour of View Binding.The existing Android Extensions plugin will continue to work, however, a warning message will b.

2021-10-05 21:04:06 720

转载 设计模式之Kotlin

Kotlin之设计模式文章目录创建型工厂方法模式抽象工厂模式建造者模式原型模式单例模式结构型模式适配器模式桥接模式组合模式装饰模式外观模式享元模式代理模式行为型模式职责链模式命令模式解释器模式迭代器模式中介者模式备忘录模式观察者模式状态模式策略模式模版方法模式访问者模式创建型工厂方法模式interface Product { val name: String}class ProductA(override val name: String = "ProductA") : Product

2021-10-05 03:57:29 383

原创 关于TCP/IP,OSI协议模型及层结构关系

概述最近复习了一下关于网络协议方面的知识,一些东西已经遗忘,有必要记录一下。 OSI将网络分为 7层 ,TCP/IP 模型将网络分为 5层或者 4层, 维基百科是这么说的: OSI模型, TCP/IP协议族其中七层、五层与四层之间的关系,参考如下图: 图片来源:OSI七层模型及TCP/IP四层模型七层模型OSI模型最主要的功能就是帮助不同类型的主机实现数据传输,七层模型中,处于不同层的中继系

2017-09-25 08:58:44 3208

原创 计算机时间:1970年1月1日

问题:计算机时间和众多的编程语言的时间都要从1970年1月1日开始算起呢相关讨论: java为什么计算时间从1970年1月1日开始为什么计算机时间要从1970年1月1日开始算起?答案:很多编程语言起源于UNIX系统,而UNIX系统认为1970年1月1日0点是时间纪元最初计算机操作系统是32位,而时间也是用32位表示,Integer.MAX_VALUE68 年就会回归一次,但 随着 64位操作系

2017-08-22 07:21:10 2021

原创 算法分析之桶排序

概述桶排序示意图(当然这里只是简单的示例,真正的桶排序比这个复杂):维基百科介绍: 桶排序实现思路:1. 设置固定空桶数2. 将数据放到对应的空桶中3. 将每个不为空的桶进行排序4. 拼接不为空的桶中的数据,得到结果简单示例:BucketSort算法分析:时间复杂度: 1. 将数据装入桶,需要N次循环 2. 之后排序,需要M次循环 3. 假设使用比较先进的排序算法,需要

2017-07-30 19:56:32 1407 1

原创 HenCoder Android开发进阶系列学习笔记

概述HenCoder是Android大神扔物线精心为我们准备的 给高级 Android 工程师的进阶手册, 这里主要记录通过学习 消化之后,所剩下的东西,谢谢大神给我们带来这么好的东西。路线首先,跟随者大神的脚步,一篇篇的将文章看完,并做好练习,就能基本掌握相关知识的用法。其次,做笔记,将相关知识点记录下来(都说好记性不如烂笔头嘛),当然是经过消化的,日后浏览起来也较快,哪里记得不太清晰了,可以翻看

2017-07-30 06:03:57 3435 1

转载 android 控件各种颜色的半透明效果配置

格式: Android:background=”#XXxxxxxx”(颜色可以写在color中) 说明:半透明颜色值不同于平时使用的颜色,半透明颜色值共8位,前2位是透明度,后6位是颜色。 也就是说透明度和颜色结合就可以写出各种颜色的透明度。下面是透明度说明表,供大家参考。 透明度 比值 颜色代码 不透明 100% FF 95% F2 90%

2017-07-25 17:24:09 683

原创 Android性能优化学习计划

Android性能优化典范 - 第1季Android性能优化典范 - 第2季Android性能优化典范 - 第3季Android性能优化典范 - 第4季Android性能优化典范 - 第5季

2017-05-16 07:46:17 659

原创 Android 多媒体之MediaStore

概述MediaStore是android系统提供的一个多媒体数据库,专门用于存放多媒体信息的,通过ContentResolver即可对数据库进行操作。如下是其结构:结构图解:MediaStore.Files: 共享的文件,包括多媒体和非多媒体信息MediaStore.Audio: 存放音频信息MediaStore.Image: 存放图片信息MediaStore.Vedio: 存放视频信息每个内

2017-04-23 20:30:24 7844

原创 Android仿微博@好友,#话题#及links处理方案

概述TextView 的 ClickableSpan 有两个坑:一、默认情况下,点击 ClickableSpan 的文本时会同时触发绑定在 TextView 的监听事件; 二、默认情况下,点击 ClickableSpan 的文本之外的文本时,TextView 会消费该事件,而不会传递给父 View;解决办法 我在Android开发中遇到的坑之微博正文点击处理参考: TextView Cli

2017-03-27 00:47:37 7497 5

原创 Java基础之I/O框架体系

概述Java中的I/O包主要分布在 java.io 和java.nio两个包中,从传统发展来看,由浅入深即是: BIO -> NIO -> AIO 这三个概念分别表示: 阻塞 I/O, 多路非阻塞 I/O,异步非阻塞 I/O。 io包下是传统的字节流和字符流,nio是jdk1.4之后提出,新增了buffer、channel、selector等概念, aio又叫做又叫做nio2,比nio更高效

2017-03-01 22:48:23 1825

原创 Java基础之集合框架

概述Java集合工具包包含了常用的数据结构:集合、链表、队列、栈、数组、映射等。Java集合工具包位置是java.util.*;其总体框架图如下所示:List一个有序且有索引的容器,允许重复值的出现。Set一个无序的唯一对象的容器,不允许重复值出现。Map一个基于键值对以及哈希的数据结构,不允许相同的键值出现。对比重复对象List 允许,Set 不允许,而Map中键对象必须唯一。排序List 有序,

2017-02-28 07:28:49 686

原创 Java 并发工具箱之concurrent包

概述java.util.concurrent 包是专为 Java并发编程而设计的包。包下的所有类可以分为如下几大类:locks部分:显式锁(互斥锁和速写锁)相关;atomic部分:原子变量类相关,是构建非阻塞算法的基础;executor部分:线程池相关;collections部分:并发容器相关;tools部分:同步工具相关,如信号量、闭锁、栅栏等功能;类图结构:脑图地址: J.U.CB

2017-02-27 07:26:29 23227 3

原创 Android中的ART和Dalvik对比

概述之前也一直零零散散的看过Android运行时与Dalvik,但是都没有没有总结成文字,这里总结一下几篇相关博客中的介绍。维基百科:Dalvik虚拟机 维基百科:Android Runtime Dalvik 是一个执行dex文件的Java虚拟机 而ART指提供一套完全与Java虚拟机兼容的接口,因此可以在4.4之后无缝将Dalvik替换成ART,这里可以查看:Android ART运行

2017-02-19 14:16:54 5756

原创 Java基础之volatile关键字

## 内存模型的相关概念### 执行指令> 主存(物理内存)、高速缓存(CPU),程序运行时需要将数据从`主存`复制一份到`高速缓存`当中.### 缓存的不一致问题> 如果一个变量在多个CPU中都存在缓存(一般在多线程编程时才会出现),那么就可能存在缓存不一致的问题.#### 缓存的不一致2种解决方法:1)通过在总线加`LOCK#`锁的方式由于在锁住总线期间,其他CPU无法访问内存,导致效率低

2017-02-18 10:50:47 637

原创 Android 序列化之Serializable和Parcelable

## Serializable作用> 只要一个类实现了`java.io.Serializable`接口,那么它就可以被序列化.## 序列化 ID > ID 相同,两个类就可以相互序列化和反序列化。建议用默认的 1L## 静态变量序列化> 静态变量不参与序列化(`序列化保存的是对象的状态,静态变量属于类的状态`)## 父类的序列化> 子类序列化(实现了`Serializable`),父类也要

2017-02-15 22:52:49 601

原创 WebView 细节,onShowCustomView与JS注入来实现视频全屏播放

概述WebView是开发中经常使用的组件,在使用中我们需要考虑 文件下载,自定义scheme,重定向,硬件加速,Cookie,HTTPS/HTTP混合等多种问题。关于 WebView 之前的总结 Android WebView使用,Http/Https,硬件加速等相关细节详解Android hybrid之JS与Native的通信方式更多参考: Android Webview实现文件下载功能

2017-01-21 11:50:32 11192

原创 Android Studio File/Code/Live Templates 及效率插件

文件/代码模板File and Code Templates自定义文件/代码模板’Tutorial How To Create Custom Android Code TemplatesCustom Android Code Templates Slidesdeveloper.android.comAndroid ADT Template Format Document网易 Android

2017-01-19 16:57:04 2151

原创 图解HTTP:确保WEB安全的HTTPS连接

HTTP 的缺点明文(不加密),内容易被窃听 不验证通信方身份,有可能遭遇伪装 无法证明报文的完整性,可能遭遇中途篡改 这些问题不仅出现在 HTTP 上,在其他未加密的协议上也存在这类问题针对明文的情况通信加密 通过 SSL 和TLS使用SSL建立安全通信线路之后,就可以在这条线路上进行 HTTP 通信了.内容加密 要求 客户端 和 服务器 同时具备加密和解密机制.内容仍

2017-01-13 11:16:37 1326

原创 图解HTTP:与HTTP协作的WEB服务器与HTTP首部

虚拟主机一台 Web服务器可以搭建多个独立域名的Web网站,也可以作为通信路径上的中转服务器 (利用虚拟主机,也成虚拟服务器).在相同的IP下,要想知道访问的是哪个Web网站,必须在Host首部内完整指定主机名或域名的URI代理,网关,隧道 代理: 服务器和客户端中间人 代理不改变URI,直接转发,可用于 缓存技术,特定网站的访问控制 按照是否使用缓存和是否修改报文可分为缓存代

2017-01-12 23:41:13 677

原创 图解HTTP:返回结果的HTTP状态码

状态码2xx 成功 表明请求被正常处理了200(OK) : 正常处理,GET返回实体,HEAD只返回首部204(No Content): 没有资源可返回,浏览器显示的页面不再更新. 一般用在只需要从客户端往服务器发送消息,而对客户端不需要发送新消息内容的情况下. 206(Partial COntent): 范围请求,响应报文中包含Content-Range指定范围实体 3x

2017-01-12 23:33:56 620

原创 图解HTTP:简单的HTTP协议和报文信息

请求报文是由请求方法、请求 URI、协议版本、可选的请求首部字段和内容实体构成的 响应报文由协议版本、状态码、用以解释状态码的原因短语、可选的响应首部字段以及实体主体构成 HTTP 是一种无状态协议,引入了Cookie实现状态管理. HTTP方法GET: 获取资源,请求访问已被URI识别的源POST: 传输实体主体,PUT: 传输文件,类似FTP,需要在请求报文的主体中包含文件内

2017-01-12 23:29:49 1547

原创 图解HTTP: 了解Web及网络基础

在地址栏输入 url 后,信息会被送往某处.然后从某处得到回复,内容就会显示在 web 页面上.名词解释:HTML(超文本标记语言)HTTP(传输协议)URL(统一资源定位符)TCP/IPHTTP属于TCP/IP协议簇内部的一个子集.计算机与网络设备要相互通信,就必须基于相同的方法.就是协议(protocol).把与互联网相关联的协议集合起来总称为TCP/IP按层次,分为4层: 应用层,传输层,

2017-01-12 23:27:30 882

原创 Effective Java : 序列化

74.谨慎的实现Serializable接口简介 一个类只要声明实现Serializable接口,即可被序列化.虽然一个类实现序列化的直接开销不高,但是长远影响却值得考虑长期开销:一旦一个类被发布,就大大降低了”改变这个类的实现“的灵活性增加了出现Bug和安全漏洞的可能性,因为它和构造器功能类似,比如对单例模式有影响随着发行新的版本,相关的测试负担也增加了.为继承而设计的类,应尽可能少

2017-01-07 12:35:57 571

原创 Effective Java: 并发

66.同步访问共享的可变数据简介关键字 synchronized可以保证在同一时刻,只有一个线程可以执行某一个方法.或者某一代码块Java 语言规范保证读或者写一个变量是原子性的,除非这个变量的类型是long或者double为了在线程之间进行可靠的通信,也为了互斥访问,同步是必须的.volatile修饰符不执行互斥访问,但它可以保证任何一个线程在读取该域的时候都将看到最近杠杆被写入的值.使

2017-01-07 12:30:37 674

原创 Effective Java: 异常

57.只针对异常的情况才使用异常简介 错误示例:try{ int i = 0; while(true){ rang[i++].climb(); }}catch(ArrayIndexOutOfBoundsException e){}异常机制的设计初衷是用于不正常的情形,所以很少会有 JVM实现视图对他们进行优化把代码放在 try-catch块中反而阻

2017-01-07 11:36:15 419

原创 Effective Java : 通用程序设计

45.将局部变量的作用域最小化简介 和 13 条,使类和成员的可访问性最小化,是一个道理,可以采取如下几种办法:在第一次使用它的地方声明.几乎每个局部变量的声明都应该包含一个初始化的表达式,否则(没有足够的信息来对一个变量进行有意义的初始化),就应该延迟这个声明.for循环优于while循环,而且防止了“剪切-粘贴”错误,且更加简短可读最后一种方法是将局部变量的作用域最小化的方法是使方法小

2017-01-07 11:09:08 471

原创 Effective Java : 方法

38.检查参数的有效性不检查 如果不对参数进行检查,可能会出现如下错误:处理过程中发生失败,产生令人费解的异常正常返回,但是会计算出错误的结果能正常返回,但是破坏了某个状态,在不确定的将来某个节点上引发错误(相当不好定位)正确的做法早 javadoc 的 @throws 标签文档中进行说明.(如果违反了参数限制将抛出异常)在计算任务之前,就应该先检查他的参数如果计算过程抛出异常,已改

2017-01-07 10:45:41 401

原创 Effective Java : 枚举和注解

30.使用enum代替int常量以前的方案在枚举出现前,都是 使用常量的方式,如public static final int APPLE_FUJI = 0; public static final int ORANGE_NAVEL = 0;这种方称为枚举常量,其弊端有:如果与枚举常量关联的 int 发生变化,则必须重新编译如果将枚举常量翻译成可打印的字符串,只能见到一个数字,没有太大的用处

2017-01-07 10:27:49 1170

中兴v880终端升级工具

1.有了它,实现终端升级 就是如此容易!!!!! 2.里面有教程,解压即可.PDF格式的,照着上面做就可以了^^^

2011-09-29

固件管理器高级版

有了它,刷recovery,刷固件,固件备份,一键搞定!随意刷rom

2011-09-29

android超频软件

1.有了它,手机超频不再是难事,让cpu尽情发挥吧!

2011-09-29

google升级包

1.谷歌地图,语音搜索,地点点评,谷歌邮箱,想要谷歌服务的人千万不能错过哦! 2.直接将GoogleUpdata.zip复制到SD卡下,关机,然后同刷机方法一样直接刷入这个Google升级包

2011-09-29

My_IPCDemo

Android AIDL IPC学习Demo

2016-10-13

Effective_Java.pdf

Effective Java中文版 第二版pdf

2017-01-07

中兴v880文档

1.有了它,我们的小v用起来就得心应手多了 2.揭开中兴v880神秘的面纱,让我们的心机将功能发挥到极致吧!

2011-09-29

万能apk签名工具

1.有了它,自己 定制 个性的rom 就 轻而易举了! 2.还在为rom的杂乱而头疼吗,定制属于自己的个性rom吧! 3.运行它,对rom里的应用程序增减,美化!

2011-09-29

设置sdk环境

系统工具,设置sdk环境,android必备的利器,有了它就不怕爱机变砖了!

2011-09-29

安卓超级终端

1.Linux操作系统命令集合的终端操作 2.在手机上实现电脑上的操作. 3.Linux操作系统虚拟环境再也不用设置了,直接手机上实现一切操作 4.安卓手机必备年刷机工具

2011-09-29

CleanArchitecture

CleanArchitecture实战,已有项目的CleanArchitecture话,博客地址: http://blog.csdn.net/wbwjx/article/details/52724445

2016-10-02

MyCleanArchitecture

CleanArchitecture实战,已有项目的CleanArchitecture改造,博客地址:http://blog.csdn.net/wbwjx/article/details/52724445

2016-10-02

空空如也

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

TA关注的人

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