自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Android阶段学习思维导图

记录下自己做的一个对Android原生应用层的思维导图,方便个人记忆扩展;

2024-10-07 15:55:44 536

原创 简单了解一下SurfaceView

最近好几次面试被问到SurfaceView的特点了,都没回答出来。SurfaceView和TextureView也是Compose这样的声明式ui唯二实现不了控件;因为他们就不是View,而是Android提供的和Surface相关的显示系统。特此简单了解一下。

2024-09-22 13:53:18 489

原创 《Android开发艺术探索》初步记录

简单的记录。

2024-09-17 10:45:20 1135

原创 碎碎念之懒加载和预加载

* 以fragment和viewPager举例,当我们左右滑动时,一定有预加载,左右页面进行缓存或销毁,保存在arrayList里面。可设置值,最少加载1。* viewPager2提供了懒加载;此时预加载的是空白页面,滑动到了要到达的页面才加载数据更新ui。

2024-09-01 22:04:58 523

原创 碎碎念之Android中CPU架构arm-v8a、arm-v7a、x86

其实不是第一次见到CPU架构了,早在我最初接触Android的时候;就发现一些开源的AI模型部署Android的so库会提供arm-v8以及arm-v7架构两种。当时没太了解,自己虽然也尝试了并生成自己模型的so库但是也没过多关注。后来,在参与实际工作中发现发包时也会针对不同厂商的cpu架构发不同的包。

2024-08-31 02:23:57 1047

原创 Android中几种线程交互方式

Android中几种线程交互的方式。

2024-08-22 15:47:11 626

原创 《Kotlin核心编程》2021版复习记录

准备先回顾一下kotlin。每天看到哪里就会写到哪里,随缘记录一下我觉得比较常用的思想和知识点。暂时粗略过一遍,方面查看。后续有时间再仔细看看;争取不和学flutter一样暂时烂尾hh。

2024-08-11 22:38:35 1028

原创 Android中原生自定义View复习(一)

自定义View可由以下四个方面涵盖。绘图:画布Canvas 画笔Paint交互:触摸TouchEvent 动画Animation性能:onDraw 考虑主线程安全 SurfaceView副线程绘图,不会阻塞主线程封装:尺寸measure 属性attributes</

2024-07-28 16:51:21 439

原创 Android中广播接收器BroadcastReceiver学习

对BroadcastReceiver的复习记录。

2024-07-26 22:54:26 363

原创 Compose简单实现原生TabLayout和ViewPager的效果

主要是两个控件,TabRow和HorizontalPager。当然如果是垂直滑动的话,用VerticalPager。

2024-07-24 22:57:35 452

原创 Android中Service学习记录

Service组件一般用来执行长期在后台的任务,如播放音乐、直播、下载文件等。Service有两种使用模式。Service可以在后台,也可以到前台。Service在主线程,不能执行耗时操作。

2024-07-24 19:58:43 1856 1

原创 Android中Intent和IntentFilter

intent是意图,intentFilter是意图过滤器。使用intent,可以启动activity、service、broadcastReceiver等。

2024-07-22 01:09:27 678

原创 Android屏幕适配度量单位px、ppi、dpi、dp、sp等

我以iphone13举例,说来挺有意思,我们这做Android开发的只有一位平常用的是Android手机。可以看到下面有6.1英寸、分辨率、ppi等。接下来我们将一一介绍。

2024-07-22 01:08:52 813

原创 Activity启动模式和任务栈简述

Android启动模式和任务栈简述

2024-07-21 13:52:26 405

原创 Android中Activity生命周期详解

Android生命周期概述

2024-07-21 12:36:36 685

原创 Android中OkHttp3中超时时间概述

可以看到,使用还是很简单的。主要相关的有这五个参数,其中我们常用到是就是connectTimeout、readTimeout和writeTimeout。再看上图,可以看到默认下connectTimeout、readTimeout和writeTimeout都是10s,而其他两个默认是0。

2024-07-17 23:50:21 1444

原创 Android中Context概述

Context,上下文,可以获取应用的资源和信息。它提供了关于应用环境全局信息的接口。有两个子类,其中ContextImpl是具体实现类,而ContextWrapper是包装类。Application、Activity、Service直接或间接继承ContextWrapper,其中Activity有主题,继承的是ContextThemeWrapper。意思差不多是虽然Activity继承Context,但是更像代理了Context,而Context拥有权力,Activity通过权力从而可以做很多事情。

2024-07-17 23:04:13 327

原创 Android中ContentProvider学习记录

在Android中,不管是sp键值对存储还是sqlite数据库存储,一般都是应用内的数据存储。而如果需要让数据跨应用共享,就需要使用到我们的内容提供者ContentProvider,比如系统的通讯录。它的底层是binder。简单来说,就是IPC通信,作为中介,可以选择哪一部分数据进行共享,保证数据的安全性。但是注意真正的存储还是文件存储、sp、sqlite等。比如外界看到的是一个URI,这个URI映射到数据库的一个部分。内容提供者 提供数据 ContentProvider。

2024-07-16 21:34:51 290

原创 Android中元数据meta-data的使用

meta-data(元数据),主要用来定义一些组件相关的配置值。与String.xml只能暴露给内部不同,AndroidManifests.xml下的meta-data是对外界开放的,是向系统注册的信息,系统及外界是可以通过相关API获取到meta-data的信息。可以在activity、service、receiver、application中进行注册。so用途显而易见,经常可以在开发包中看见。

2024-07-16 09:50:41 756

原创 Kotlin中let、apply、also、with、run的使用与区别

let()函数是一个扩展对象函数,一般用于对象的判空处理,函数块里面it代指该对象,最后一行或者return为返回的结果。preson?.let{return 1函数体里面写的时候是it和this提示就可以区分,主要还是以下两点两个a开头的返回的是对象本身,其余的返回是return或者最后一行结果(lambda 表达式的结果)。with是内联函数,其他的是扩展函数。

2024-07-15 10:17:25 479

原创 Android中Retrofit的学习和使用记录

是Android一个restful风格的网络请求框架,本质上还是OkHttp进行请求,Retrofit负责对接口的封装。Retrofit 接口层封装请求参数、Header、Url 等信息。

2024-07-15 10:16:51 1227

原创 Android OkHttp3中HttpLoggingInterceptor使用

HttpLoggingInterceptor是OkHttp3提供的拦截器,用来记录HTTP请求和响应的详细信息。

2024-07-14 17:15:43 1563

原创 Android中OkHttp3的使用

是目前Android使用最广泛的网络框架。上图很清晰了,这里只做一个简单的介绍。1.创建一个OkHttpClient对象,2.创建request和requestBody(如果有)3.利用request对象创建call对象。选择是同步还是异步请求。4.代码上在上一步就可以得到响应结果,工作流程是进入分发器完成任务的调配,分发器维护请求队列和线程池。5.进入拦截器6.服务端返回响应结果。

2024-07-14 02:45:56 577 1

原创 Kotlin中Unit、Any和Nothing

Unit是一个特殊的类型,它表示“没有意义的值”的单元类型。在Kotlin中,当你不需要函数返回任何具体值时,可以使用Unit类型。因为对这个Nothing很感兴趣所以写了这篇博客,想和这个函数一样,如果休息时间有人call我就抛异常。一般就用来抛异常,还有一种是循环和资源复用?表示一个函数或方法永远不会正常返回。利用Nothing是所有类的子类型。和Java 中 void一样。类似Java中Object。Java里面没有这个概念。

2024-07-11 22:45:45 432

原创 Jetpack Compose学习记录(一)

学了一段时间的Compose,不得不说声明式UI比原生的开发效率快很多,而且Compose也是Google现在主推的开发模式,可以动态化地更改ui,相比于databinding对数据和布局进行绑定。Compose更近一步,界面上任一控件也可以动态地进行改变。在某些场景下,有些需要写多套布局,而Compose只需要写一套。缺点个人认为也显而易见,虽然理论上可以实现几乎所有和原生一样的功能,但是比如RecyclerView这样的控件,Compose中的LazyColumn还是没有那么丝滑;

2024-07-11 22:29:41 867

原创 Android中RecyclerView使用详解(一)

RecyclerView 是 Android 开发中一个非常强大且灵活的组件,用于在有限的窗口中展示大量数据集。它提供了一种比传统的 ListView 更高效的方式来滚动大量数据项。RecyclerView 不仅可以像 ListView 那样垂直滚动,还可以水平滚动,甚至支持更复杂的布局,如网格布局(Grid Layout)、瀑布流布局(Staggered Grid Layout)。

2024-07-11 00:48:06 2792

原创 Kotlin协程(一)

应该从函数里面的代码是否需要挂起来思考。

2024-07-09 21:08:12 845

原创 Android中测试环境下用HTTP请求时异常

做小demo时请求的接口用的是HTTP请求,报如下异常。可以看到:有下面异常。

2024-07-07 21:21:22 250

原创 Markdown文档基础语法

#一级标题##二级标题反斜杆\为转义符加粗的文字** 加粗的文字 **斜体* 斜体*删除的文字~~ 删除的文字 ~~都可以套用:比如加粗斜体:加粗的斜体换行一般为空两格然后回车键,我更习惯用br标签前面一个* 一个空格1.加上一个空格二级列表四个空格```kotlin```> 加上空格[百度](url)百度我是脚注1图片的话要链接一般设置成网络图片或本地图片。在超链接的前面加个!|姓名|年龄||-|-|

2024-07-07 12:27:24 243

原创 Andoird中Sqlite数据库的使用

是一种轻量数据库,一般用于手机或者嵌入式设备中。SQL:结构化查询语言。在Android中我们一般继承于SQLiteOpenHelper进行SQLite的一个实现。

2024-07-06 21:51:08 434

原创 Android持久化存储之SharedPreferences

之前ViewModel,是在内存做一个缓存,一般情况下当应用退出就会丢失。而持久化存储,也就是存储到磁盘里面,一般卸载应用清除数据会丢失。默认在data/data/包名/shared_prefs下,本质是xml里面的键值对。apply()方法是异步的,不会阻塞主线程,而commit()方法是同步的,会阻塞主线程直到数据被写入。4、MODE_WORLD_WRITEABLE:可被其他应用写入。2、MODE_PRIVATE:私有方式存储,其他应用无法访问。下面的代码,sp的传入需要Context。

2024-07-03 22:51:20 442

原创 Android中ViewModel、LiveData以及DataBinding的使用

ViewModel、LiveData以及DataBinding都是Jetpack中的组件,准备做一个三者结合的计数器小应用,分别为+1,+2。由于ViewModel的特性我们切换横竖屏的时候数据仍然不会丢失。

2024-07-03 00:17:03 787

原创 Android横竖屏

默认有竖屏,也就是protrait布局文件,我们点击下图所示的按钮创建横屏landscape布局文件。可以在xml中配置configChanges, 表示在改变屏幕方向或大小的时候状态不变。当横竖屏切换的时候Activity走了Destroy,如果我们想保存状态,可以通过重写。我们移动设备一般可以切换横竖屏,可以编写不同的布局文件显示不同的布局。还可以设置屏幕的方向,有些车机会限定横屏或者竖屏。有些应用也会,比如金铲铲,王者荣耀。比如给横竖屏的按钮换个颜色。

2024-06-30 23:16:20 474

原创 Android本地化

简单学习一下Android本地化,也就是在手机系统切换语言时显示不同的文字,比如Hello变成你好。在strings.xml里面配置字段,并且点击右上角进入配置。xml中一个textview,使用定义的字符串资源。点击图标配置选取中文下对应的含义。

2024-06-30 14:05:49 356

原创 Android MVVM架构学习

ViewModel:作用个人感觉和MVP的Presenter层一样。不过ViewModel是不持有view引用的,当VIewModel的数据更新时,view层会相应更新ui,一般与jetpack相配合。View: 界面层,对应于Activity,XML,负责数据显示以及用户交互。相比MVP,这里面的view视图数据一般是在xml中使用DataBinding进来双向绑定数据的。Model:数据层,包含数据实体和对数据实体的操作。DataBinding可以看我的上一篇博客链接。应该写的还是比较简单清晰的。

2024-06-29 22:18:11 374

原创 Android安卓里ViewBinding和DataBinding的使用

相信大家在接触Android开发的时候都会在Activity中使用findViewById来将xml中的组件,如Button、TextView等进行绑定。ViewBinding帮我们生成了一个ActivityMainBinding类,我们通过ActivityMainBinding.inflate()来加载布局,再设置bingding的根布局为内容视图。在ViewBinding的基础上除了可以绑定控件id,还进行了数据绑定。在build.gradle或kts文件进行配置。xml配置进行事件绑定。

2024-06-29 19:37:53 753

原创 Android安卓MVP模式

最近实习写mvvm比较多,但是好多老项目都是mvp,准备接下来写一个mvp模式的demo练手,在此之前做一个复习。mvp在mvc模式的基础上发展而来,原来的Controller是Activity,但是还view,高度耦合。具体可以看我的上一篇博客。

2024-06-29 00:58:18 1110

原创 Android安卓MVC模式复习

将准备秋招,开始复习一下安卓的基础知识。

2024-06-27 21:52:14 312

原创 Android SDK开发学习

SDK全称 Software Development Kit,广义上的SDK 是为特定的软件包、软件框架、硬件平台、操作系统等建立应用程序时所使用的开发工具的集合;1)数据化存储相关,sp、mmkv、sqlite等最好都不要明文存储==如地图SDK、人脸识别或OCR的SDK、支付SDK、音视频SDK等等。2)网络安全配置,networkSecurityConfig。注入注入(APP)应用上下文,用于获取相关资源及服务。其实就是jar包、so库、aar包,可以在应用获取也可以利用。1)需要考虑调用简单。

2024-06-23 12:08:07 321

原创 Compose下拉刷新官方组件

参考链接:https://jetpackcompose.cn/docs/layout/pull_refresh。

2024-06-22 12:50:41 360

空空如也

空空如也

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

TA关注的人

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