自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 UML-用户用例实例讲解

用例图主要用来图示化系统的主事件流程,它主要用来描述客户的需求,即用户希望系统具备的完成一定功能的动作,通俗地理解用例就是软件的功能模块,所以是设计系统分析阶段的起点,设计人员根据客户的需求来创建和解释用例图,用来描述软件应具备哪些功能模块以及这些模块之间的调用关系,用例图包含了用例和参与者,用例之间用关联来连接以求把系统的整个结构和功能反映给非技术人员(通常是软件的用户),对应的是软件的结构和功能分解。基用例控制与包含用例的关系,以及被包含用例的事件流是否会插入到基用例的事件流中。父用例通常是抽象的。

2024-09-08 19:03:41 393

原创 Github标星5-8K今年最热门技术-Android-MVP-阿里大牛-倾情-详解(上)

三层架构是一个分层式的软件体系架构设计,它可适用于任何一个项目。通常意义上的三层架构就是将整个业务应用划分为:界面层(User Interface layer)、业务逻辑层(Business Logic Layer)、数据访问层(Data access layer)。区分层次的目的即为了“高内聚低耦合”的思想。在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构。微软推荐的分层式结构一般分为三层,从下至上分别为:数据访问层、业务逻辑层(又或称为领域层)、表示层。(参考自:百度百科)

2024-09-08 14:11:38 1932

原创 Android项目——实现时间线程源码

以及服务的实例都是由这个进程里运行的主线程创建的。注意新的线程不是为活动,广播接收器,服务或者内容提供器实例创建:这些应用程序的组件在进程里被实例化(除非另有说明,都在同一个进程处理),实际上是进程的主线程。或者本地进程中的线程池呼叫它们,从进程的主线程呼叫是不可以的。呼叫视图以及由视图里正在运行的线程组成的子类。通常情况下,这会被作为进程的主线程,如果你创建一个线程并显示一个窗口,那么继承的窗口视图将从那个线程里启动。避免在进程里创建多余的线程,除非它创建它自己的线程,我们应保持应用程序的单线程性。

2024-09-08 09:30:08 588

原创 Android滑出菜单和悬浮按钮的实现

>

2024-09-08 03:57:41 1149

原创 Android开发 设置手机壁纸

使用Gallery来实现一个可以供用户选择的缩略图列表,当用户选择列表中的图像时,会在ImageSwitcher控件中显示出当前图像,当点击Button时,当前图片将被设置为壁纸。其实这里的ImageSwitcher完全可以替换为ImageView,考虑到ImageSwitcher可以提供较好的动画效果,所以我们在这里选择了ImageSwitcher。//取得目前欲显示的图像的VIEW,传入数组ID值使之读取与成像。//利用getItem方法,取得目前容器中图像的数组ID。//返回所有的图片总数量。

2024-09-07 17:24:52 724

原创 Android~记录material

at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:884)Caused by: android.view.InflateException: Binary XML file line#24: Binary XML file line #24: Error inflating class com.google.android.material.tabs.TabLayoutCaused by: android.view.InflateExcep

2024-09-07 11:50:26 1011

原创 android LifeCycle-简单使用和详细原理解析

if (!sync();首先会创建ObserverWithState对象,用来记录生命周期状态,方法会计算出此时的生命周期状态,后面是一个while循环,while循环会分发生命周期状态比如你在onResume中进行注册其实也是可以收到onCreate和onStart的注册回调的,这种注册方式实际上就是粘性注册,安卓系统中电量信息的广播接受者就是一种很好的粘性广播注册案例,与这个粘性注册原理相同后面代码中的方法调用如下if (!

2024-09-06 23:27:43 1094

原创 JAVA--String str=““与new String()的区别

因为用到new关键字,肯定会在堆中创建一个String对象,如果字符池中已经存在”abc”,则不会在字符串池中创建一个String对象,如果不存在,则会在字符串常量池中也创建一个对象。在常量池中存储字符串常量的内存空间,即字符串常量池,当需要使用字符串时,先去字符串池中查看该字符串是否已经存在,如果存在,则可以直接使用,如果不存在,初始化,并将该字符串放入字符串常量池中。//拼接字符串,此时会在堆中新建一个abcd的对象,因为str2编译之前是未知的。

2024-09-05 05:34:36 303

空空如也

空空如也

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

TA关注的人

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