自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

lifeidroid的专栏

干就完了

  • 博客(48)
  • 资源 (1)
  • 收藏
  • 关注

原创 ComposeUI——日历控件(CalendarComponent)

可选择日期范围的日历控件

2022-11-15 15:49:23 1264 1

原创 Mac(M1)安装Redis

Mac电脑安装配置Redis

2022-11-09 08:15:25 1077

原创 ComposeUI——下拉刷新+上拉加载(二、SwipeLazyColum)

3、两处回调方法不够统一,SwipeRefresh里面下拉刷新的回调,LazyLoadMoreColum里面加载更多的回调。,虽然可以实现,但是不够优雅,不如原生来的更简洁,可不可以将他们融合起来做成一个既可以下拉刷新又可以上拉加载更多呢。2、每次编写代码都要进行嵌套,SwipeRefresh里面套一个LazyLoadMoreColum【代码太过冗余】1、下拉刷新和上拉加载的状态,需要单独变量控制【可不可以通过方法控制呢?2、控件抽取封装,统一回调方法(SwipeLazyColum.kt)

2022-10-21 09:00:12 758

原创 ComposeUI——下拉刷新+上拉加载(一、简单封装)

ComposeUI是将来开发的趋势,本人也在对它进行学习,会把踩过的坑一一记录下来,希望能对大家有帮助。话不多说,直接开干。

2022-10-20 17:07:21 1650 1

原创 ComposeUI副作用

Compose初接触还在学习中,副作用的使用场景会在后续的开发中完善。

2022-10-19 16:26:53 87

原创 安卓经验分享——图片加载

图片加载框架有很多,这里只对比了我开发以来用到的几款图片加载框架(其他的加载框架没用过没有发言权)。其他博主文章中列举了很多对比项,我只列举出几个重要的项。我目前仍在用的是Glide,原因很简单:该工具仍在维护、配置灵活、功能完整,耦合度相对较低方便进行封装。不过后续的开发中,我可能会将Coil纳入备选,Coil是一个新的开发图片加载库,也是google力推的工具之一。

2022-09-28 17:14:25 771

原创 记录mac 平台下 AndroidStudio 安装配置问题

在mac电脑上安装好Android Studio后如果不想用默认的jdk的话,务必要下载jdk1.8版本(不是任何东西新的都是最好的),否和会出现各种奇葩问题。当安装好环境以后,创建了一个模拟器,想运行一个helloWord时,竟然AS报错:To build this project, accept the SDK license agreements and install the missing components using the Android Studio SDK Manager.

2021-08-08 22:53:54 423

原创 java.lang.NoSuchMethodError: No static method metafactory 在setOnClickListener

此时需要再app的build.gradle中加入编译的java版本android { defaultConfig { * } //以下四行代码 compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 }}...

2021-08-06 11:44:59 179

原创 记录Mac M1版本设备, 重装系统后”计算机账户创建失败“问题

我的是一台Mac mini,重置设备后创建账户卡死,然后报出:”计算机账户创建失败“。遇到这个问题的盆友,请按一下步骤重新装系统可修复,亲测可用。1. 启动至恢复分区(先将设备关机,开机并继续按住电源按钮,直至您看到启动选项窗口。点按标有“选项”字样的齿轮图标,然后点按“继续”)2. 启动终端(从顶部菜单栏找到终端)3. 运行终端命令:resetpassword4. 单击"重置密码"窗口旁边的背景(空的地方),然后在菜单栏中选择"恢复助理(Recovery Assistant)",然...

2021-08-05 14:54:35 4508

原创 LinearLayout中两个字体大小不同的TextView对齐问题

LinearLayout中两个字体大小不同的TextView时,最后一个TextView在父布局中顶部对齐,如下图:解决办法:在LinearLayout中设置:android:baselineAligned="false"完结

2021-02-03 16:48:07 663

原创 Android高版本应用HttpClient的问题

在安卓版本在P之上的应用如果想继续使用apache-http客户端:为了能编译通过需要在build.gradle文件中声明以下编译时依赖项:android { useLibrary'org.apache.http.legacy'}加上这个依赖以后,会发现编译不报错了,但是在运行时,这个包下的类还是会报错。Caused by: java.lang.NoClassDefFoundError: Failed resolution of需要在应用的AndroidManifest.xm...

2020-12-17 14:54:27 791

原创 Microsoft Edge 中 网址复制问题

解决办法是:设置——共享、复制和粘贴——改为纯文本。

2020-12-04 08:36:27 1989

原创 Android xml转object之XStream的坑!坑!坑!

牛逼的领导指出返回数据要xml格式,弱弱的安卓程序猿也无力回天啊!只能硬着头皮干!第一步:xml解析有没有类似Gson/fastjson类似的工具呢?找了半天终于找到了今天的主角XStream。先贴出要解析的xml<?xml version="1.0" encoding="UTF-8" ?><name title="三角波"> <Wave tag="V1" seq="0"> <Samples name="张三"> 0X0

2020-10-23 13:37:12 1353

原创 AndroidStudio自动生成SVN/Git .ignore配置文件

android studio新建项目是自带.ignore文件的,默认是使用了忽略规则上传。默认忽略的是:*.iml.gradle/local.properties/.idea/caches/.idea/libraries/.idea/modules.xml/.idea/workspace.xml/.idea/navEditor.xml/.idea/assetWizardSettings.xml.DS_Store/build/captures.externalNativ.

2020-07-24 08:53:25 270

原创 Android Intent调用其他App时,报错:exposed beyond app through ClipData.Item.getUri()

解决办法:在Application的onCreate中加入: StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder(); StrictMode.setVmPolicy(builder.build()); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { builder.detect

2020-07-16 15:40:36 620

原创 Android手工打造脑图控件

背景所有的背景都是项目需要。效果功能脑图展示 样式订制(文字颜色、图标、样式、边框..) 折叠方式支持两种:a、同侧折叠不影响其他。b、同侧展开其他项折叠 整体拖动 待扩展......

2020-07-14 09:25:46 1007 6

原创 Android中集成Unity的方式总结和遇到的坑

官方默认集成方式集成思路:1、导出Unitymodule包。2、AndroidStudio导入module,通过打开UnityPlayerActivity的方式展示3D。(UnityPlayerActivity在另外一个进程中)具体集成步骤请参考:Android Studio项目集成Unity详细教程优点:1、3D动画展示不占用主项目内存,当UnityPlayerActivity关闭时会kill 当前进程。缺点:1、与UnityPlayerActivity相互通讯麻烦。因为.

2020-07-08 09:50:57 2086

原创 Android中当在主进程中打开一个其他进程中的Activity时如何防止Application重复初始化

在我们开发过程中,有时需要指定一个Activity在其他进程中运行。例如: <activity android:name=".views.MyPlayerActivity" android:process=":myprocess"> </activity>当打开此类型Activity时,会发现Application被重复初始化了。具体解决办法如下 /** * 获取当前进程名称

2020-07-08 09:02:01 827

转载 java的四大特性

编程语言分为面向过程和面向对象,而java就是一种面向对象的编程语言。什么是面向过程编程呢?就是一流程为单位,注重最后的结果。比如小明要从郑州去北京,他第一步就是要先买火车票,然后去火车站乘车,坐火车到北京。这就是面向过程编程,必须每一步都做到,才会有最后的结果。这样一来面向过程编程的缺点就很明显了:不利于程序的维护 功能之间有很强的关联性,就是说你每一次改动一步,可能就会涉及到好几步的更改。什么是面向对象变成呢?就是把一个事物看做一个整体,从事物的属性和功能两方面进行描述面向对象..

2020-06-05 16:31:19 136

转载 接口和抽象类的区别

接口和抽象类都是继承树的上层,他们的共同点和区别如下:共同点都是上层的抽象层。 都不能被实例化 都能包含抽象的方法,这些抽象的方法用于描述类具备的功能,但是不比提供具体的实现。区别在抽象类中可以写非抽象的方法,从而避免在子类中重复书写他们,这样可以提高代码的复用性,这是抽象类的优势;接口中只能有抽象的方法。 一个类只能继承一个直接父类,这个父类可以是具体的类也可是抽象类;但是一个类可以实现多个接口。Java语言中类的继承是单继承原因是:当子类重写父类方法的时候,或者隐藏父类的成员变量.

2020-06-05 15:50:29 118

转载 Java final、finally、finalize 的区别

初步了解这是一道非常典型的面试题,而它也是有一系列的典型回答的:final可以用来修饰类、方法、变量,分别有不同的意义所在,final修饰的class代表不可继续扩展(继承),final修饰的变量代表不可修改,final修饰的方法代表不可重写。finally则是java保证某一段重点代码一定要被执行的修饰符,例如:我们需要用try块让JDBC保证连接,保证unlock锁等动作finalize是基础类java.lang.Object的一个方法,它的设计目的是为了保证对象在垃圾回收之前完成特定资..

2020-06-05 14:52:54 131

转载 Java泛型

概述泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。泛型的本质是为了参数化类型(在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型)。也就是说在泛型使用过程中,操作的数据类型被指定为一个参数,这种参数类型可以用在类、接口和方法中,分别被称为泛型类、

2020-06-05 12:05:55 86

转载 Java中四大引用

强引用(StrongReference)概念介绍:在此说明一下,StrongReference只是对强引用的一个称呼,但是强引用没有对应的实体类。使用强引用的对象就算是内存出现OutOfMemory(内存溢出)的异常也不会回收。也就是说该对象永远不会被垃圾回收器回收,不论内存是否充足。平常代码中用的最多的就是强引用。Demo验证:static Object object = new Object();......................................./**

2020-06-04 17:05:24 112

转载 软件设计六大设计原则

了解设计模式的朋友们,想必都听说过“六大设计原则”吧。其实最经典的23种设计模式中或多或少地都在使用这些设计原则,也就是说,设计模式是站在设计原则的基础之上的。所以在学习设计模式之前,很有必要对这些设计原则先做一下了解。1、单一职责原则There should never be more than one reason for a class to change.理解:不同的类具备不同的职责,各司其职。做系统设计是,如果发现有一个类拥有了两种职责,那么就要问一个问题:可以将这个...

2020-06-04 15:04:00 1009

转载 Java多线程和线程池

1.为什么要使用线程池在java中,如果每个请求到达就创建一个新线程,开销是相当大的。在实际使用中,服务器在创建和销毁线程上花费的时间和消耗的系统资源都相当大,甚至可能要比在处理实际的用户请求的时间和资源要多的多。除了创建和销毁线程的开销之外,活动的线程也需要消耗系统资源。如果在一个jvm里创建太多的线程,可能会使系统由于过度消耗内存或“切换过度”而导致系统资源不足。为了防止资源不足,服务器应用程序需要采取一些办法来限制任何给定时刻处理的请求数目,尽可能减少创建和销毁线程的次数,特别是一些资源耗费比较大

2020-06-04 14:24:01 100

转载 Java反射机制

什么是反射机制JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制(注意关键词:运行状态)换句话说,Java程序可以加载一个运行时才得知名称的class,获悉其完整构造(但不包括methods定义),并生成其对象实体、或对其fields设值、或唤起其methods反射机制主要提供的功能在运行时判断任意一个对象所属的类; 在运行时构造任意一个类

2020-06-04 09:20:11 143

转载 Java类加载机制

我们知道,我们写的java文件是不能直接运行的,我们可以在IDEA中右键文件名点击运行,这中间其实掺杂了一系列的复杂处理过程。这篇文章,我们只讨论我们的代码在运行之前的一个环节,叫做类的加载。这篇文章的大致结构:首先,认识类加载机制;然后,详细介绍类加载的过程;最后,介绍了类加载器,还有双亲委派原则。一、什么是类的加载在介绍类的加载机制之前,先来看看,类的加载机制在整个java程序运行期间处于一个什么环节,下面使用一张图来表示:从上图可以看,java文件通过编译器变成了.c.

2020-06-03 14:30:13 139

转载 垃圾回收机制与调用System.gc()区别

java垃圾回收与System.gc()介绍垃圾回收机制:1.垃圾收集算法的核心思想Java语言建立了垃圾收集机制,用以跟踪正在使用的对象和发现并回收不再使用(引用)的对象。该机制可以有效防范动态内存分配中可能发生的两个危险:因内存垃圾过多而引发的内存耗尽,以及不恰当的内存释放所造成的内存非法引用。垃圾收集算法的核心思想是:对虚拟机可用内存空间,即堆空间中的对象进行识别,如果对象正在被引用,那么称其为存活对象,反之,如果对象不再被引用,则为垃圾对象,可以回收其占据的空间,用于再分配。

2020-06-03 09:18:56 824

转载 垃圾回收算法(JVM)

说起垃圾收集(Garbage Collection,下文简称GC),有不少人把这项技术当作Java语言的伴生产物。事实上,垃圾收集的历史远远比Java久远,在1960年诞生于麻省理工学院的Lisp是第一门开始使用内存动态分配和垃圾收集技术的语言。当Lisp还在胚胎时期时,其作者John McCarthy就思考过垃圾收集需要完成的三件事情:哪些内存需要回收? 什么时候回收? 如何回收?经过半个世纪的发展,今天的内存动态分配与内存回收技术已经相当成熟,一切看起来都进入了“自动化”时代,那为什么我们还

2020-06-01 17:19:27 305

转载 Java内存模型

java内存模型(Java Memory Model,JMM)是java虚拟机规范定义的,用来屏蔽掉java程序在各种不同的硬件和操作系统对内存的访问的差异,这样就可以实现java程序在各种不同的平台上都能达到内存访问的一致性。可以避免像c++等直接使用物理硬件和操作系统的内存模型在不同操作系统和硬件平台下表现不同,比如有些c/c++程序可能在windows平台运行正常,而在linux平台却运行有问题。物理硬件和内存首先,在单核电脑中,处理问题要简单的多。对内存和硬件的要求,各种方面的考虑没有在多核

2020-06-01 10:29:59 100

原创 Java 容器(HashMap、HashSet、LinkedList、ArrayList)原理与对比

HashMapHashSetLinkList原理总结:1、数据存储基于双向链表的数据结构,查询慢,增删快。线程不安全。2、插入数据很快。先是在双向链表中找到要插入节点的位置index,找到之后,再插入一个新节点。 双向链表查找index位置的节点时,有一个加速动作:若index < 双向链表长度的1/2,则从前向后查找; 否则,从后向前查找。add(E)添加到末尾,复杂度O(1);add(index, E)添加第几个元素后,需要先查找到第几个元素,直接指针指...

2020-05-29 14:05:12 568

原创 Android10定位服务的开启状态判断和申请

AndroidQ新增定位权限: <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION"/>定位服务的判断和开启:/** * ============================================== * author : carl * e-mail : [email protected] * time : 2020/05/29 * desc : 权

2020-05-29 10:26:39 3467

原创 Kotlin特点汇总简写

1. 简化空对象的处理(防止空指针)val userName = a?.b?.c?.d ?: ""2. 属性访问,代替Get/Set方法class User { var name :String?=null}3. 默认构造函数class User(var name: String)4. 快速创建List/Map集合类型1) List可变list val list = listOf("a","b","c")可变list val list = mut...

2020-05-20 14:38:13 634

原创 lang.IllegalStateException: Only fullscreen opaque activities can request orientation 问题解决办法

问题来源Android8.0中Activity如果设置了样式透明,就不能指定Activity的方向。坑坑坑解决办法1)删除android:screenOrientation="portrait" 来自minifyst.xml2)在活动上添加这两行 protected void onCreate(Bundle savedInstanceState) { ...

2020-01-02 09:08:13 122

原创 Android打开设置了android:process="xxx"的Activity,导致Application重复创建的解决方案

问题:Android给Activity设置了其他进程,会导致Application会重复创建。方案:在Application再次创建的时候对比一下进程名字,如果不是原始的名字不执行onCreate()里面的方法。Application: @Override public void onCreate() { super.onCreate(); ...

2019-11-06 13:41:28 710

原创 Android 带下划线的EditText

带下划线的EditText/** * ============================================== * author : carl * e-mail : [email protected] * time : 2018/12/31 * desc : 带下划线的EditText * version: 1.0 * ================...

2019-11-06 11:56:14 288

原创 Android Button防止短时间多次点击

为了防止Button短时间多次点击导致异常显示效果,可以将点击事件进行多虑:import android.view.View;import java.util.Calendar;/** * ============================================== * author : carl * e-mail : [email protected] * ...

2019-11-06 11:50:28 418

原创 第六章:点点滴滴,在于积累

开发的过程就是最好的学习过程,也是检验自己能力过程,更是升华自己的过程。明事理的壮汉——Expanded在我们在开发Flutter页面的过程中,Column和Row无疑是布局中用的最多的控件,但有的时候会发现个别布局太大会超出屏幕,调试时受影响的边缘会出现黄色和黑色条纹图案。入下图:解决办法:在Text外面套上一个Expanded控件。最终的效果,如下图:为什么会出现这...

2019-10-23 10:51:39 223

原创 第五章:小心翼翼,坑中有戏

师傅领进门,修行在个人。希望大家能在学习的过程中触类旁通。在文章中我可能不会详细讲某个控件的使用,但会给大家讲讲在开发过程中某个控件给我带来的思考。继续跟我一起深挖坑中的知识吧。管教有方的父亲——Container相信大家现在都已经开始着手Flutter的程序了。我们在写第一个控件的时候发现没有,怎么Flutter的控件大多都没有width和height这两个属性呢?找了半天好像...

2019-10-18 11:45:15 274

原创 第四章:不破不立,永不放弃

做好了前期的准备,从这篇开始就跟着我一步一步地挖掘Flutter中的坑吧。视图的祖宗——widget在安卓中提到View,你知道所有视图组件的祖宗都是View,但是这祖宗不亲民啊。可在Flutter中就不一样了,widget到处都是,可以说widget支撑起了Flutter的全部脸面。我们在开发界面中会对“树”的概念更加深刻,child和children比比皆是。你会发现widget...

2019-10-17 15:15:26 352

Android中文帮助文档

Android中文版帮助文档,方便开发者查看

2014-04-13

空空如也

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

TA关注的人

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