自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Lighthouse

生命不息,奋斗不止,万事起于忽微,量变引起质变

  • 博客(327)
  • 资源 (17)
  • 问答 (5)
  • 收藏
  • 关注

原创 Google Game Service 接入指南

Google Game Service接入指南

2022-09-28 20:42:40 3297 1

原创 Android Git 工作流,基础,回撤commit

一 ,Git的工作流程1.删除工作区,暂存库,版本库(commited)git分区工作区、暂存区、版本库tip:1.1 除了隐藏的.git文件夹,其他项目文件位于的地方便是工作区 (默认)1.2 工作区的文件需要添加到Git的暂存区(git add)1.3 Git的版本库(git commit)2.git 状态untracked、unstaged、uncommited2.1 新建的文件都是untracked状态(未跟踪)2.2 git add到暂存区,Git便会在暂存区中生成一个该文件

2020-07-28 21:33:07 892

原创 Android中 Applicaton Context,Service context, Activity context 的区别。

在Activity中使用 View.inflate(context,r.layout.xxx)方法时,如果使用Application Context,则获得的View将不会受到Activity的生命周期的影响,即使Activity已经被销毁,View仍然存在。ContextWrapper是Context的派生类,它实现了Context类的接口。mBase本身也是Context对象,其类型是ContextImpl,因此,ContextImpl类才是Context类真正的实现。,但是它们之间有一些区别。

2023-11-08 17:15:03 233

原创 App违反Google数据安全政策,解决方案

google隐私政策阶段性会进行更新,时长关注隐私政策变化,避免app被强制下架,影响后续运营工作。

2023-05-05 15:48:16 1133 1

原创 GoF设计模式的基石-类间关系

软件系统在运行时,类将实例化成对象,并由这些对象来协作完成各项业务功能,类与类之间关系最终会反映在运行时类实例化对象间的关系。实例化对象之间关系用来模拟真实世界中各种关系。聚合,组合和普通关联的区别在语义,产品和客户之间不能使用聚合和组合,第一是因为,产品和客户之间没有整体与部分的关系,也就不会存在组合中整体与部分的同生共死关系。产品不是客户的部分,只能使用一般的关联关系。

2023-04-05 15:45:30 431

原创 Unity入门开发资源链接

新人入门,资源链接。

2023-04-04 18:00:08 551

原创 ChatGpt关于协程的回答

2023-03-16 21:16:09 62

原创 Android Execution failed for task ‘:app:mergeDebugJavaResource

错误提示原因:App项目依赖的三方AAR,而AAR中编译后的字节码class.jar包含相同的kotlin-stdlib-1.7.10.jar文件,导致资源merge出现异常。官方给出了。

2023-03-08 14:26:39 1678

原创 Kotlin data class 数据类用法

使用该copy()函数复制对象,允许您更改其某些属性,同时保持其余属性不变。componentN()按声明顺序与属性相对应的函数。对于复杂copy()用例,建议自定义函数来处理。equals()/hashCode()对。stackoverflow:相关用例。上面copy()用例与预期不符原因。这里主要关注3,4,分别表示。

2023-02-14 18:09:01 536

原创 Android studio 项目中不小心把文件设置 Excluded 怎么恢复成原来的文件夹

一般用于标注排除目录。被排除的目录不会被 IntelliJ IDEA 创建索引,相当于被 IntelliJ IDEA 废弃,该目录下的代码文件是不具备代码检查和智能提示等常规代码功能。

2023-02-14 15:49:57 393

原创 Android 7.x 系统Webview No virtual method getWebViewClient() 解决

android 7.x 系统webView No Virtual method getWebViewClient()

2023-01-08 10:24:47 289

原创 解决 Android WebView 多进程导致App崩溃

Android WebView MultiProcess导致App崩溃。

2022-11-29 22:19:16 5754 1

原创 Android Gradle发布Artifact (aar包)到Maven仓库

gradle升级之后,早期gradle发布artifact 到maven的脚本提示部分引用找不到,通过gradle 官方给的demo梳理出来 gradle 7.2 以上使用的发布脚本。publish.gradle 文件。

2022-11-14 08:56:34 2223

原创 Android Gradle 插件版本说明

Android studio 构建基于Gradle,而Android gradle plugins 提供几个构建Android的功能,使用Gradle脚本,或者其它被支持的脚本开发。包含Kotlin Dsl脚本。所以在更新Android studio IDE时,会提示让升级AGP插件。升级完成后,会提示升级的Kotlin插件。捋清楚它们的依赖关系,遇到不兼容问题可以快速定位Android Gradle 插件版本说明。

2022-11-09 20:44:32 1386

原创 Csdn 查看[ 问答 ] [专家申请入口]

csdn常用链接,快速入口

2022-10-24 10:06:48 103

原创 Android Compose 修饰符类行为整理

compose 修饰符用来对界面组件装饰,类似View Tree系统的组件属性,compose对于修饰符用法做了限制,RowScope,ColumScope,BoxScope,等等限制为仅可以在这些组件使用的修饰符。各种修饰构成compose样式基础,入门第一步首先了解会使用修饰符。状态,副作用在掌握了修饰符之后进行梳理Compose 修饰符列表。

2022-09-20 21:05:08 685

原创 Android Compose 基础 搜索组件

近来 google compose 成为了热点,作为下一代ui组件开发利器,配合kotlin语法简洁性,能最大限度的提高ui开发效率。最近也在学习compose基础知识。脱离官方帮助文档和codeLab来谈。compose语法和View tree差异比较大。需要开发组件,管理状态,因为compose 可组合项的更新完全依赖与状态的跟踪,引用的状态被修改,所有依赖状态的可组合项均会发生重组,界面可组合项的刷新遵循mvi范式。

2022-09-20 20:14:07 834

转载 Android compose状态缓存算法

compose 状态缓存Gap Buffer算法

2022-09-19 10:34:44 161

原创 基于jenkins进行定制化开发

Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,起源于Hudson(Hudson是商用的),主要用于持续、自动的构建/测试软件项目、监控外部任务的运行(这个比较抽象,暂且写上,不做解释)。Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。通常与版本管理工具(SCM)、构建工具结合使用。常用的版本控制工具有SVN、GIT,构建工具有Maven、Ant、Gradle。

2022-09-15 20:39:15 1139

原创 Android 用户如何将Room根据不同账户动态分库方案

开发中需要根据不同用户,创建不同名称数据库。登录用户关联自己名称命名的数据库,达到分库目的。也有基于同一个数据库进行分表的操作。这里仅介绍使用Android Room数据库,如何分库和关联已经存在的数据库。GreenDao数据库同样可以进行动态分库,原理一样。官方Room链接Room 持久性库在 SQLite 上提供了一个抽象层,以便在充分利用 SQLite的强大功能的同时,能够流畅地访问数据库。针对 SQL 查询的编译时验证。可最大限度减少重复和容易出错的样板代码的方便注解。......

2022-08-31 11:46:13 1768

原创 Java类型Api初探

kotlin语言中大量使用泛型相关语法,对于比较抽象的类和函数如果认识仅仅停留在java 实体上,就不能很好的学习kotlin语法的精髓。协程以及compose中泛型相关api比比皆是。不理解java 类型,就不能学好kotlin和composeJava中的Type类型详解入............

2022-07-13 18:11:17 507

原创 初学者如何正确理解google官方建议架构原则(疑问?)

最近花时间看了google 的Jetpack 架构组件,kotlin协程、flow。接着了google官方推荐应用架构指南,compose等。这些目是 目前主流应用开发采用的技术栈。我们项目中已经搭建起来了,但是自己理解的很浅,使用官网推荐的架构写起来心里总觉的没有使用MVP 写起来直来直去。但是这些才是未来应该掌握的技术栈,记录下疑惑的地方。1.标准数据驱动代码样式,和各个层的职责,各层之间如何进行关联。Activity、Fragment中是否只放ui相关代码: ui相关代码指的是那些代码?是否是元素的显

2022-06-29 21:29:00 966

原创 Andorid Jetpack Hilt

前言本blog 是学习Hilt官方文档后,随手记的笔记,欢迎一起探讨交流Hilt用法hilt用法xmind 脑图解决问题:1.不能通过构造函数注入接口2.不能通过构造函数注入不归您所有的类型(外部库的类)解决思路:@Module注释的Hilt模块类里面的@Binds注释的函数会告知 Hilt 如何提供某些类型的实例示例:说明:在 Hilt 模块内创建一个带有 @Binds 注释的抽象函数(@Binds 注释会告知 Hilt 在需要提供接口的实例时要使用哪种实现),解决问题:1.Retrofit、Ok

2022-06-23 16:56:15 598

原创 Google 软件版本经历周期

经常会看到依赖jar后缀一些alpha、release、rc、beta等,所代表的含义也很容易通过搜索引擎找到,以下就是通过搜索引擎找到的说明梳理。Jetpact库遵循严格的语义版本控制如下:Android 系统版本完整周期{developer 预览,beta外部测试,稳定版,正式发行版}Alpha:内测版,存在缺,已有功能改动大,代码不稳定Beta:早期版本,有缺陷,无大BUG,可能加入新功能,进一步开发完善。版,完善修改,成为正式发布的候选版本(Release Candidate)RC:(Relea

2022-06-22 15:20:32 146

原创 kotlin 注解声明与使用

1. java中应用注解语法和kotlin几乎一摸一样2. kotlin让注解的目标范围比java更广,包括了文件和表达式3. 一个注解类的参数可以是基本类型、字符串、枚举、类引用、其他注解类实例、或者数据4. 使用点目标来处理kotlin这种一个声明产生多个字节码元素情况。var a=1 对应java中三种字节码元素。5. 注解类声明拥有一个主构造没有类主体构造方法中所有参数都被标示成val属性6. 元注解用来指定使用点目标、保留期模式、和其他注解的特性...

2022-06-20 08:56:42 620

原创 Android kotlin泛型知识点梳理

学习知识需要提前设立目标,带着问题学习才能有的放矢。无论是java的泛型还是kotlin语言的泛型均是写框架,写通用工具类神器。如果不熟悉泛型语法,开发过程中将会遇到很多奇奇怪怪的问题。当然语言的高级特性肯定也理解不了。本blog基于 《kotlin实战》 第九章泛型的理解而来kotlin 引入新概念:实化类型参数、声明点变型、使用点变形实化类型参数:泛型函数的类型参数修用 refixed 饰符 如 : ,并且设置泛型函数为inline 内联函数,那么在运行时可以获取到泛型参数的泛型实参的具体类型。(普通的

2022-06-16 15:23:09 820

原创 Android kotlin 类委托 by,by lazy关键

接触kotlin语言也有几年时间了。日常开发工作中也推荐使用kotlin,但是对于一些kotlin语言语法的细节没有进行系统学习。碎片的知识点让工作中屡屡碰壁,前些天开始学习compose时候,意识到基础没有打好,最近也在分阶段的复习kotlin语言语法知识点。并统一输出。关关键字by解决的问题是:有继承实现导致的脆弱性,基类被子类继承并对某些功能进行了扩展,这样子类就依赖了父类实现细节。随着不断迭代,父类中实现细节会随着迭代而被修改。早期对父类实现细节的假设也会失效,最终导致程序以不正确的行为而告终。所以

2022-06-14 11:29:44 2033

原创 Kotlin DSL构建

通用编程语言: 有一系列足够完善的能力来解决几乎所有能被计算机解决的问题领域特定语言:专注在特定的任务或者领域上,并放弃的与该领域无关的功能 (外部DSL),而领域特定语言分为外部DSL与内部DSLDSL更趋向声明式 :语言包括有命令式和声明式写法 ,命令式语言描述执行操作所需步骤的确切序列,每个操作实现都被独立化了,而声明式描述了想要的结果并将执行细节留给解释它的引擎,通常让执行更有效率。外部DSL语言:声明式写法,很难与通用编程语言的宿主应用程序结合起来使用,外部DSL语言自己的语法并不能直接嵌套使

2022-06-13 16:33:24 368

原创 Android Jetpack 之 DataStore 初探

DataStore是google官方提供的,用于替换SharedPreferences来对简单数据进行存储的解决方案。对于SharedPreferences存在的缺陷进行修补,并且可以和Kotlin协程与Flow结合。DataStore提供对基本类型和对象类型进行分开存储,分别使用 PreferencesDataStore,ProtoDataStore.通过名字很容区分 PreferencesDataStore用来存储基本类型String、int、long、double、float、boolean、set

2022-06-07 16:58:52 547

原创 全国行政区划

前言闲着整理了一下全国行政区划图。

2022-05-23 15:03:47 141

原创 Java字节码基础

前言最近计划熟悉下jectpack api,很多java基础知识没有好好掌握。对于一些新技术中涉及到底层知识抓耳挠腮不知所以然。虽然不能一股脑的掌握所有知识。但是遇到不了解的地方做好笔记也能逐渐的提高自己专业知识字节码 .class 文件包含高级语言编译后输出的所有jvm虚拟机可以识别的元数据信息。了解字节码之前需要了解下 Hotspot 虚拟机栈和栈帧字节码基础:相关blog该篇blog的引子:类、接口、函数在学习kotlin相关文档时, inline 标识官方介绍说会将相关内联函数在java

2022-05-22 19:59:40 135

原创 类、接口、函数

前言各种专业技术名词不断增加,学好编程首先要了解技术术语,然后才可以对技术行业整体有一个大概判断。学习中对某个知识点经常使用但是看官方文档时还是很容易混淆,专业术语与自己已经掌握的知识对应关系。blog在于罗列 java 和 kotlin ,类、接口、函数 种类。函数Lambda 是一个对象。Lambda 表达式是一个函数接口对象lambda表达式 :block:String.()->Unitkotlin inline 关键字每次调用高阶函数,会创建一个匿名内部类。 函数设置成Inl

2022-05-22 11:16:57 168

原创 应用架构原则

前言基础架构好坏直接决定所开发项目未来的稳定性、可伸缩性。在jetpack 框架出来之前应用架构大部分是从网络上东拼西凑出来的产物,没有考虑日后维护.对于google官方提供的应用架构原则,应该认真研读。应用架构定义了应用的各个部分之间的界限以及每个部分应承担的职责架构务必要能允许应用扩缩、提升应用的稳健性并且方便对应用进行测试常见的架构原则如果您不应使用应用组件存储应用数据和状态,那么您应该改为如何设计应用呢?随着 Android 应用大小不断增加,您定义的架构务必要能允许应用扩缩、提升应用的

2022-05-19 16:32:28 1125

转载 如何写好技术文档 Software Engineering at Google

前言文大部分内容翻译总结自《Software Engineering at Google》 第10章节 Documentation,一直坚持写技术文档,进步一直不大。每次书写相关工具类或者三方sdk配套文档,草草写完,阅读量也少的可怜。科学学习书写文档,做好日常技术积累,定期进行输出很多技术人自己非常轻视技术文档的书写,然而又时常抱怨文档不完善、质量差、更新不及时…… 这种在程序猿间普遍存在的矛盾甚至已经演变成了一个段子。文档的重要性高质量的文档对于一个组织或团队来说有非常多的益处,比如让代码和AP

2022-05-14 14:08:46 214

原创 compose 编程思想

前言compose已经熟悉了几周了,跟着google sample进行理解时,对可组合函数参数列表如何声明,事件向上,数据向下传递理解还是有偏差。重新理解了下compose编程思想1.早期基于View 微件数:更新界面:多个需要同时更新View,会遗漏。复杂的View微件更新会更新前面已经移除过微件的状态2.声明性范式:tips:mvvm 为数据驱动界面ui更新。 界面(Fragment,Activity)订阅ViewModel中的LiveData,数据发生变化时通知界面进行刷新。而lifecy

2022-04-06 11:46:55 2404

原创 JetPack compose 状态提升(二)

前言状态管理是时使用JetPack compose 开发必须掌握的知识,为了提高可组合函数的复用率.通常会将状态从可组合函数之中提升到可组合函数外面。Jetpack Compose 中的常规状态提升模式是将状态变量替换为两个参数:value: T:要显示的当前值onValueChange: (T) -> Unit:请求更改值的事件,其中 T 是建议的新值类型@Composablefun HelloScreen() { var name by rememberSaveable {

2022-03-23 15:58:44 897

原创 Google play 应用签名密钥证书,上传签名证书区别

前言2021年8月之前未要求通过google play分发的应用必须使用AAB格式。之后要求必须适应AAB格式进行签名后才可以在google play上进行分发。早期直接上传签好名字的apk到google play。分发下来apk签名与上传到google play的一致。下面分别是加入google 签名计划的签名和apk签名:google签名计划使用的jks为 google.jks sha1 33:C2:07:B8:6E:47:31:43:D0:AB:24:1A:12:1A:5A:8B:C4

2022-03-23 11:22:10 10337 1

原创 Jetpack Compose 管理状态(一)

前言Jetpack Compose 可帮助您明确状态在 Android 应用中的存储位置和使用方式,状态管理是过渡到 Compose 开发ui首要面临的问题。Jetpack compose 引入新的开发范式 (MVI)Jetpack Compose 架构比较:MVP & MVVM & MVI应用中的状态是指可以随时间变化的任何值。这是一个非常宽泛的定义,从 Room 数据库到类的变量,全部涵盖在内。所有 Android 应用都会向用户显示状态。下面是 Android 应用中的一

2022-03-22 15:48:29 3311

原创 Compose 中的附带效应

关键词附带效应是指在可组合函数范围之外发生的应用状态变化效应是一种可组合函数,该函数不会发出界面,并且在组合完成后产生附带效应。效应名称作用用例LaunchedEffect在某个可组合项的作用域内运行挂起函数snackBar显示rememberCoroutineScope获取组合感知作用域,以便在可组合项外启动协程snackBar显示rememberUpdatedState在效应中引用某个值,该效应在值改变时不应重启–DisposableEffe

2022-03-17 17:23:04 1215

原创 Jetpack Compose 的阶段

前言Compose 会通过几个不同的“阶段”来渲染帧。如果我们观察一下 Android View 系统,就会发现它有 3 个主要阶段:测量、布局和绘制。Compose 和它非常相似,但开头多了一个叫做“组合”的重要阶段。帧的三个阶段组合(Composition)布局(测量和放置)(Layout)绘制 (Drawing)compose 关键词幂等:输入计算出相同结果的工作单向数据流:数据能够沿一个方向(从组合到布局,再到绘制)生成帧. 【有特例】智能重组: Compose 会跟踪不同阶段中

2022-03-17 14:25:18 3228

vallet打包.rar

拖拽式打包。采用 window 批处理脚本。拖拽apk到脚本后,自动写文件夹并输出写好的渠道包

2021-09-22

android手机cpu架构查询快捷路径

Android开发,查看cpu 信息渠道。android手机cpu架构查询快捷路径。android手机cpu架构查询快捷路径

2020-11-05

android 二维码生成

二维码生成,jar,亲测可以使用,欢迎使用,二维码生成,jar,亲测可以使用,欢迎使用

2018-07-03

android Framwork 通讯录

conentProvider,conentResolver,读取短信,联系人,设备信息

2017-06-13

面向接口编程

一片很耐读的思想总结,反正我前前后后看了不下5遍,每次都会有新的收获

2017-03-09

android studio aidl

android studio aidl通信

2016-09-13

HorSeekBar

android 创建文件夹在sd上,android 文件系统研究,

2016-08-22

androidndkr7

Android eclipse jni 配置需要

2016-01-22

Android Studio中进行单元测

Android Studio中进行单元测

2015-12-15

android html 5 播放器

项目中集成播放器。省去自己去调第三方视频播放api

2015-08-31

联系人 数字 字符 中文 排序

可以满足一般性的开发,可以进行深度定制,我们项目中就是使用这个进行开发

2015-02-12

一个list中多布局加载实现

listview 一个listview中多个布局实现代码

2014-07-31

fragment切换 核心代码

核心代码话费很多时间去整理分析出来的东西。给初学者。使用可以作为项目的基础框架使用。

2014-07-30

flowlayout继承自viewgroup方式来实现

实现自定义标签效果,flowlayout继承自viewgroup方式来实现

2014-07-25

badgeview Android 提示徽标

很方便的的信息提示功能,极大的简化了。项目中消息提示问题。快来下载吧

2014-07-24

Android 引导页面

简单的引导页面,免去您反复写的烦恼.可以方便的直接移动到直接的开发项目中

2014-07-24

瀑布流demo

简单的瀑布流适合新手使用。三级缓存都有。

2014-07-24

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

TA关注的人

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