
Android
文章平均质量分 70
Android打怪升级
Hdnw
Her determination never wavered.
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Android IPC机制(三)进程间通信方式
在Android中有以下几种进程间通信方式。1.Bundle2.文件共享3.Messenger4.ContentProvider5.AIDL原创 2024-11-03 21:02:37 · 1463 阅读 · 0 评论 -
Android IPC机制(二)Binder
在Android开发中,进程间通信(IPC)是一个重要的概念,而Binder则是Android系统中实现IPC的核心机制。本文将详细介绍Binder的工作原理、其在Android中的重要性以及与其他IPC机制的对比。原创 2024-11-02 21:34:18 · 1096 阅读 · 0 评论 -
Android IPC机制(一)多进程模式
在Android开发中,进程和多进程的概念是非常重要的。本文将深入探讨什么是进程、如何在Android中开启多进程、查看多进程的方法,以及多进程带来的进程隔离问题。原创 2024-11-02 21:14:13 · 777 阅读 · 0 评论 -
kotlin协程入门
可以简单地将它理解成一种轻量级的线程。我们之前所学习的线程是非常重量级的,它需要依靠操作系统的调度才能实现不同线程之间的切换。而使用协程却可以仅在编程语言的层面就能实现不同协程之间的切换,从而大大提升了并发编程的运行效率。为什么使用协程?简洁性:协程使得异步代码看起来像同步代码,减少了回调地狱的问题。轻量级:协程比线程更轻量,可以在同一线程中运行多个协程。易于管理:协程可以通过结构化并发来管理生命周期,避免内存泄漏和资源浪费。原创 2024-10-20 16:30:40 · 1110 阅读 · 0 评论 -
使用Okhttp-服务器不支持缓存的解决办法
通过以上步骤,你可以确保在网络请求中优先使用缓存数据,无论网络状态如何。这种方法可以提高应用的响应速度,并在网络不稳定时提供更好的用户体验。原创 2024-09-22 20:52:17 · 618 阅读 · 0 评论 -
Android 汉字转拼音(两行就够了)
在这个示例中,我们使用了Transliterator.getInstance("Han-Latin")方法来获取一个将汉字转换为拼音的Transliterator实例。请注意,Transliterator类是在Android 4.4(API级别 19)中引入的,所以如果你的应用需要支持更早的Android版本,你可能需要使用其他的库或方法来实现汉字转拼音的功能。在Android中,我们可以使用Android自带的Transliterator类来实现汉字转拼音的功能。原创 2024-06-14 10:07:02 · 1042 阅读 · 0 评论 -
Android studio配置Flutter(看这一篇就够了)
Flutter 是 Google 推出并开源的移动应用开发框架,主打跨平台、高保真、高性能。开发者可以通过 Dart 语言开发 App,一套代码同时运行在 iOS 和 Android平台。Flutter 提供了丰富的组件、接口,开发者可以很快地为 Flutter 添加 Native(即原生开发,指基于平台原生语言来开发应用,flutter可以和平台原生语言混合开发) 扩展。原创 2024-04-22 18:00:24 · 28019 阅读 · 3 评论 -
Android详细介绍POI进行Word操作(小白可进)
poi-tl是一个基于Apache POI的Word模板引擎,也是一个免费开源的Java类库,你可以非常方便的加入到你的项目中,并且拥有着让人喜悦的特性。原创 2024-04-07 17:25:35 · 2583 阅读 · 1 评论 -
[Android]RadioButton控件
与普通按钮不同的是,RadioButton控件多了一个可以选中的功能,能额外指定一个android:checked属性,该属性可以指定初始状态是否被选中。其实也可以不用指定,默认初始状态都不被选中。RadioButton控件是单选按钮控件,它继承自Button控件,可以直接使用Button控件支持的各种属性和方法。RadioButton控件必须和单选框RedioGroup控件一起使用。原创 2024-01-03 21:40:38 · 1455 阅读 · 0 评论 -
[Android]CheckBox复选框
在上面的代码中,我们获取了id为checkBox1的CheckBox控件,并设置了它的监听器。在Android开发中,复选框(CheckBox)是一种常用的控件,用于让用户在多个选项中进行选择。在上面的代码中,我们定义了一个id为checkBox1的CheckBox控件,并设置了它的宽度、高度和显示的文本内容。接下来,我们需要在Java代码中获取CheckBox控件,并设置它的监听器,以便在用户点击时进行相应的操作。除了设置监听器,我们还可以通过代码来获取CheckBox的状态,并进行相应的操作。原创 2023-12-22 14:21:57 · 3839 阅读 · 0 评论 -
【Android】百度地图 获取开发密钥,创建应用(保姆级教程)
keytool -list -v -keystore 存放key的文件路径加扩展名 -storepass 打包密码。获取包名,在项目的build.gradle(Module:app)里面的applicationId。输入keytool -list -v -keystore debug.keystore,输入cd .android,定位到.android文件夹下。在创建应用里,应用类型选择Android SDK。点击 应用管理->我的应用->创建应用。运行控制台输入cmd,输入命令。运行控制台输入cmd。原创 2023-12-19 10:49:38 · 1918 阅读 · 0 评论 -
Android开发,使用kotlin学习多媒体功能(详细)
获得PendingIntent对象,第一个参数是Context,第二个参数用不到,传入0,第三个参数是一个Intent对象,第四个参数是确定PendingIntent的行为,行为有FLAG_ONE_SHOT,FLAG_NO_CREATE,FLAG_CANCEL_CURRENT和FLAG_UPDATE_CURRENT四种可选。(9)右击res目录->New->Directory,创建一个xml目录,接着右击xml目录->New->File,创建一个file_paths.xml文件。原创 2023-12-19 10:26:15 · 1929 阅读 · 0 评论 -
[Android]AlertDialog对话框
是Android中常用的对话框组件之一,用于在应用程序中显示一些提示信息、警告、确认信息或者提供用户进行选择的界面。通常用于与用户进行交互,例如要求用户确认某个操作、输入一些信息或者从一组选项中选择一个。,您可以方便地与用户进行交互,并在应用程序中显示各种提示信息和选择界面。来设置对话框的标题、消息、按钮以及其他属性。以下是一个简单的示例,演示如何创建一个简单的。原创 2023-11-30 17:41:02 · 466 阅读 · 0 评论 -
Android异步之旅:探索IntentService
IntentService是Android中的一个Service类,用于在后台执行耗时操作,而不会阻塞UI线程。它封装了HandlerThread和Handler,使得我们可以方便地在后台执行任务,而不需要自己管理线程和消息处理。以下是 IntentService 的主要特点和用法:自动停止:当所有的请求都被处理完毕后,IntentService 会自动停止,无需手动调用 stopSelf() 方法。原创 2023-11-30 17:38:44 · 312 阅读 · 0 评论 -
Android异步之旅:探索HandlerThread
当我们在Android应用程序中需要执行一些耗时的任务,比如网络请求、数据库操作或者其他需要在后台线程中执行的操作时,我们通常会使用异步任务来完成这些任务。在Android中,有多种方式来实现异步操作,其中之一就是使用HandlerThread。在本篇博客中,我们将探索HandlerThread,了解它的工作原理以及如何在Android应用程序中使用它来进行异步操作。HandlerThread是Android中的一个类,它继承自Thread类,并且内部包含一个Looper和一个Handler。原创 2023-11-22 18:11:03 · 625 阅读 · 1 评论 -
Android异步之旅:探索AsyncTask
AsyncTask是一种轻量级的异步任务类,它可以在线程池中执行后台任务,然后把执行的进度和最终的结果传递给主线程并在主线程中更新UI。两个线程池+HandlerAsyncTask是一个抽象的泛型类,它提供了ParamsProgress和Result这三个泛型参数。其中,🟨Params表示参数的类型🟨Progress表示后台任务的执行进度和类型🟨Result表示后台任务的返回结果AsyncTask类提供了四个核心方法(按照执行顺序介绍):1️⃣在主线程中执行,用于。原创 2023-11-22 17:52:04 · 868 阅读 · 1 评论 -
[Android jni] Bitmap与Mat对象的相互转换
JNI实现Bitmap到Mat的转换 JNI实现Mat到Bitmap的转换 调用示例:在target_link_libraries中添加下面的依赖项。记得在CMakelist文件中添加以下代码,不然编译的时候会报错。原创 2023-09-13 15:36:33 · 1237 阅读 · 0 评论 -
[Android]图片加载库Glide
Glide是一个快速高效的Android图片加载库,可以自动加载网络,本地文件,app资源中的文件,注重于平滑的滚动。添加依赖添加网络权限。Glide的介绍Glide的基本使用指定图片的格式Glide占位符指定图片的大小过渡动画图片变换Generated APIGlide.with()方法用于创建一个加载图片的实例with()方法可以接收Context,Activity,Fragment类型的参数,这个参数的生命周期将会和加载的图片绑定在一起,如果传递的是activity,那么这个图片是和act原创 2023-02-09 19:10:07 · 5076 阅读 · 1 评论 -
[Android]网络框架之Retrofit(kotlin)
Retrofit简介Retrofit基本使用Retrofit的注解Retrofit的转换器文件的上传与下载Retrofit是一款由Square公司开发的网络库,但是它和OkHttp的定位完全不同。OkHttp侧重的是底层通信的实现,而Retrofit侧重的是上层接口的封装。事实上,Retrofit就是Square公司在OkHttp的基础上进一步开发出来的应用层网络通信库,使得我们可以用更加面向对象的思维进行网络操作。Retrofit的项目主页地址是:添加依赖添加网络权限。原创 2023-02-09 14:44:48 · 1339 阅读 · 0 评论 -
[Android]网络框架之OkHttp(详细)(kotlin)
由Square公司贡献的一个处理网络请求的开源项目,是目前Android使用最广泛的网络框架。从Android4.0开始HttpURLConnection的底层实现采用的是OkHttp。OkHttp的介绍,添加依赖,OkHttp的使用get的同步与异步请求post的同步与异步请求POST请求的数据格式POST请求上传文件POST请求上传json对象POST请求上传多个数据OkHttp的配置1.Builder构建器2.自定义拦截器3.自定义缓存4. 自定义Cookie原创 2023-02-08 22:30:24 · 9620 阅读 · 0 评论 -
[Android]搜索框SearchView
SearchView提供了用户界面,并且可以通过监听查询内容来帮助实现搜索查询功能的小组件。在Activity中,设置RecyclerView,然后给SearchView设置文本监听,当SearchView里的文本内容发生变化时,就根据文本内容来按照条件搜索room数据库并显示搜索结果。原创 2023-02-05 12:46:44 · 2252 阅读 · 0 评论 -
[Android]ProgressBar进度条
ProgressBar是进度条控件,ProgressBar的应用场景很多,比如用户登录时,后台发送请求,以及进行等待服务器返回信息等一些比较耗时的操作。这个时候如果没有提示,用户可能会以为程序崩溃了或手机死机了,会大大降低用户体验,所有在需要进行耗时操作的地方,添加上进度条,让用户知道当前的程序正在执行,也可以直观地告诉用户当前任务的执行进度。在使用ProgressBar控件时,我们经常要控制它的消失和显示,这时可以设置visibility属性。gone:表示控件不可见,但不会占用原来的位置和大小。原创 2023-02-01 11:06:20 · 5373 阅读 · 0 评论 -
[Android]开关控件Switch
【代码】[Android]开关控件Switch。原创 2023-02-04 16:12:02 · 1005 阅读 · 0 评论 -
[Android]DrawerLayout滑动菜单+NavigationView
滑动菜单,就是将一些菜单选项隐藏起来,而不是放置在主屏幕上,然后可以通过滑动的方式将菜单显示出来。这种方式即节省了屏幕空间,又实现了非常好的动画效果,是Material Design中推荐的做法。NavigationView是Material库中提供的一个控件,它不仅是严格按照Material Design的要求设计的,而且可以将滑动菜单页面的实现变得非常简单。第二个子控件是滑动菜单中显示的内容。第一个子控件是主屏幕中显示的内容。添加导航按钮展示滑动菜单。处理菜单项的点击事件。原创 2023-02-07 12:07:56 · 705 阅读 · 0 评论 -
[Android]Toolbar
Toolbar是由AndroidX库提供的,它的强大之处在于,它不仅继承了ActionBar的所有功能,并且灵活度很高,可以配合其他控件完成一些Material Design的效果。Theme.MaterialComponents.DayNight.NoActionBar:表示浅色主题,它会将界面的主题颜色设成浅色,陪衬颜色设为深色。Theme.MaterialComponents.NoActionBar:表示深色主题,它会将界面的主题颜色设成深色,陪衬颜色设为浅色。在themes的两个xml文件中,原创 2023-02-04 16:13:21 · 839 阅读 · 0 评论 -
[Android]Layer Drawable
Item的结构也比较简单,比较常用的属性有android:top、android:bottom、android:left和android:right,它们分别表示Drawable相对于View的上下左右的偏移量,单位为像素。另外,我们可以通过android:drawable属性来直接引用一个已有的Drawable资源,也可以在item中自定义Drawable。Layer-list有层次的概念,下面的item会覆盖上面的item,通过合理的分层,可以实现一些特殊的叠加效果。原创 2023-01-21 00:40:14 · 540 阅读 · 0 评论 -
[Android]Bitmap Drawable
当开启平铺模式时gravity属性会被忽略,平铺模式有:repeat、mirror、clamp。repeat表示简单的水平和竖直方向上的平铺效果,mirror表示简单的水平和竖直方向上的镜面投影效果,clamp表示图片四周的像素会扩展到周围区域。在实际开发中,我们可以直接引用原始的图片,但是也可以通过xml的方式来描述它,通过xml来描述的BitmapDrawable可以设置更多效果。当图片小于容器的尺寸时,设置此选项可以对图片进行定位。这是一种图片相关的处理技术,也叫纹理映射。是否开启图片抗锯齿功能。原创 2023-01-20 11:47:24 · 759 阅读 · 0 评论 -
android开发,使用kotlin学习Fragment
(2)自定义Fragment类,继承自Fragment类或者子类,同时实现onCreateView()方法,在方法中,通过inflater.inflate加载布局文件,接着返回其View。(3)在需要加载Fragment控件的Activity对应的布局文件中添加Fragment标签,并设置name属性为自定义fragment。(4)最后在Activity的onCreate()方法中调用setContentView()加载布局。(3)调用add()方法或者repalce()方法加载Fragment。原创 2023-01-19 17:10:41 · 1778 阅读 · 1 评论 -
[Android]动画
动画有下面两种情况同一个图形通过视图在界面上进行透明度,缩放,旋转,平移的变化(View动画)在界面的同一个位置上不断切换显示不同的图片(Drawable动画)原创 2023-01-19 17:09:36 · 1964 阅读 · 0 评论 -
android开发,使用kotlin学习WorkManager
Google推出WorkManager组件,WorkManager很适合用于处理一些要求定时执行的任务,它可以根据操作系统的版本自动选择底层是使用AlarmManager实现还是JobScheduler实现,从而降低了我们的使用成本。另外,它还支持周期性任务,链式任务处理等功能,是一个非常强大的工具。原创 2023-01-19 17:03:30 · 1454 阅读 · 8 评论 -
[Android]制作9-Patch图片
把png图片拖到drawable中,对着png图片右击->Create 9-Patch file->点击OK(注意.9.png图片的命名要和png图片不一样)在图片的四个边框拖动白线来绘制黑点,在上边框和左边框绘制的部分表示当图片需要拉伸时就拉伸黑点标记的区域,在下边框和右边框绘制的部分表示内容允许被放置的区域。在drawable就会生成以.9.png为后缀的图片,点击这个图片。.9.png图片是一种特殊的png图片,它在放大显示时不会失真。原创 2023-01-19 17:11:32 · 625 阅读 · 0 评论 -
自定义View之View的事件体系
滑动冲突定义:当有内外两层View都可以响应事件时,事件由谁来决定。滑动冲突类型:1.当内外两层View滑动方向不一致 2.当内外两层滑动方向一致的时候3.两种情况叠加解决思路:内部拦截:dispatchTouchEvent+dispatchTransformedTouchEventdown事件分发给子元素,move事件是看条件的,如果不满足条件,就把事件交给子元素处理,如果满足条件,就会取消子元素的处理事件,然后把事件交给父元原创 2023-01-11 15:29:01 · 748 阅读 · 3 评论 -
[Android]序列化原理Parcelable
Parcelable是Android为我们提供的序列化的接口,Parcelable相对于Serializable的使用相对复杂一些,但Parcelable的效率相对Serializable也高很多,这一直是Google工程师引以为傲的,Parcelable和Serializable的效率对比Parcelable vs Serializable号称快10倍的效率。到writeToParcel方法的Parcel类里面来,Parcel相对于快递员的包裹,需要我们把数据写到Parcel里面去。原创 2023-01-07 14:36:05 · 657 阅读 · 0 评论 -
[Android]序列化原理Serializable
其实,在writeObject是方法中,会查看你是否在类中写了writeObject方法,如果写了,那么就会通过反射调用类中的writeObject来写,而不是调用默认的方法。Externalizable接口实现Serializable接口,里面有两个方法需要我们重写,一个是writeExternal方法,怎么把对象写到序列化里面去,另一个是readExternal方法,怎么把这个对象从序列化中读取出来。所谓的序列化就是把内存中的某个对象转换成字节流的形式,而反序列化就是把字节流转换回内存的某个对象。原创 2023-01-04 18:31:25 · 1530 阅读 · 4 评论 -
android开发,使用kotlin学习LiveData
LiveData是Jetpack提供的一种响应式编程组件,它可以包含任何类型的数据,并在数据发生变化的时候通知给观察者。也就是说,我们可以将数据使用LiveData来包装,然后在Activity中去观察它,就可以主动将数据变化通知给Activity了。原创 2022-10-06 22:15:44 · 1183 阅读 · 1 评论 -
android开发,使用kotlin学习滚动控件RecyclerView
RecyclerView是一个增强版的ListView(Android 5.0推出)。被用来代替ListView和GridView控件,并且能够实现瀑布流的布局。它更加高级并且更加灵活·,可提供更为高效的回收复用机制,同时实现管理与视图的解耦合。SwipeRefreshLayout控件是谷歌公司提供的下拉刷新控件,具有使用简单、灵活等特点。判断当前的状态是否是刷新状态设置下拉进度条的颜色主题,参数为可变参数,并且为资源ID,可以用来设置多种不同的颜色,没转一圈就显示一种颜色。原创 2022-11-26 19:16:39 · 2879 阅读 · 0 评论 -
android开发,使用kotlin学习Lifecycles
新建一个MyObserver类,并让它实现LifecycleObserver接口,在方法上使用@OnLifecycleEvent注解,并传入了一种生命周期事件,生命周期事件的类型一共又七种:ON_CREATE、ON_START、ON_RESUME、ON_PAUSE、ON_STOP、ON_DESTROY分别匹配Activity中相应的生命周期回调;Lifecycles组件可以让任何一个类都能轻松感知到Activity的生命周期,同时又不需要在Activity中编写大量的逻辑处理。原创 2022-10-06 16:41:59 · 857 阅读 · 1 评论 -
android开发,使用kotlin学习ContentProvider
1、注册ContentProvider,2、内容URI,3、创建自己的ContentProvider,4、访问其他程序中的数据原创 2022-08-30 21:10:13 · 1078 阅读 · 0 评论 -
[Android]使用JSONObiect和Gson相关方法实现json数据与kotlin对象的相互转换
1.JSON是什么?JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,本质就是具有特定格式的字符串,JSON数据已经是客户端与服务端交互的最常用的选择,已经很少使用xml来进行数据交互了,JSON比起XML的优势和缺点:优势:JSON的体积更小,在网络上传输的时候更省流量。缺点:语义性较差,看起来不如XML直观。 4.使用JSONObject,将json格式的字符串{}转换为kotlin对象1.将json字符串封装成JSONObject对象2.从对象中根据key得原创 2022-12-26 21:58:42 · 3949 阅读 · 29 评论 -
android开发,使用kotlin学习数据存储
1、文件存储(1)将数据存储在文件中(2)从文件中读取数据(3)实战演练:重新启动程序时EditText中能保留我们上次输入的内容。2、SharedPreferences存储(1)将数据存储到SharedPreferences中(2)从sharedpreferences中读取数据3、SQLite数据库存储(1)创建数据库(2)升级数据(3)添加数据(4)更新数据(5)删除数据(6)查询数据4、使用SQL操作数据库原创 2022-09-05 18:22:04 · 2431 阅读 · 2 评论