自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 mqtt安卓客户端

1.MQTT(消息队列遥测传输协议),是一种基于 发布/订阅 (publish/subscribe)模式的"轻量级"通讯协议, 该协议构建于TCP/IP协议上。MQTT最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。MQTT协议中有三种身份:发布者(Publish)、服务器(Broker)、订阅者(Subscribe)Disconnect:与服务器断开MQTT连接;

2023-08-31 19:36:39 968

原创 git 配置

【代码】git 配置。

2023-07-31 10:49:14 115

原创 android studio(火烈鸟版本)使用protobuf

Protobuf 全称:Protocol Buffers,是 Google 推出的一种与平台无关、语言无关、可扩展的轻便高效的序列化数据存储格式,类似于我们常用的 xml 和 json。

2023-07-24 17:16:46 1646

原创 项目中AIDL常用构建

使用ServiceManage完成绑定服务,和调用对应的方法。2.实体类Message需要对应的Message.aidl。

2023-07-11 19:24:50 183

原创 Android开发艺术探索-Activity的生命周期全面分析

这是一种加强的singleTask模式,它除了具有singleTask模式的所有特性外,还加强了一点,那就是具有此种模式的Activity只能单独地位于一个任务栈中,换句话说,比如Activity A是singleInstance模式,当A启动后,系统会为它创建一个新的任务栈,然后A独自在这个新的任务栈中,由于栈内复用的特性,后续的请求均不会创建新的Activity,除非这个独特的任务栈被系统销毁了。”表示0个或多个任意字符,需要注意的是,由于正则表达式的规范,如果想表示真实的字符串,那么“

2023-02-13 11:16:40 134

原创 一篇明白Andorid中的Handler

handler是一套 Android 消息传递机制,这里的消息指的是message类,可以理解成handler是对message进行传递的一种机制。

2022-11-14 20:02:52 1404

原创 android APK瘦身

此内容包括语言字符串和样式,以及直接包含在resources.arsc文件中的内容路径 ,例如布局文件和图像。这个文件打不开,但知道这个文件里面是包含res/values/ 文件夹所有配置中的XML内容,包括colors.xml,ids.xml, string.xml, styles.xml等等资源文件;包含特定于处理器软件层的编译代码,该目录包含了每种平台额子目录,像armeabi,armeabi-v7a,arm64-v8a,x86,x86_64。该文件列出应用程序的名称,版本,访问权限和引用的库文件。

2022-11-04 10:32:55 536

原创 重学Java—Java中各类锁详解

如果物理机器有多个处理器,能够让两个或以上的线程同时并行执行,我们就可以让后面那个请求锁的线程不放弃CPU的执行时间,看看持有锁的线程是否很快就会释放锁。不够灵活:加锁和释放的时机单一,每个锁仅有一个单一的条件(某个对象),相对而言,读写锁更加灵活 无法知道是否成功获得锁,相对而言,Lock可以拿到状态,如果成功获取锁,…可重入锁:递归锁,是指在同一个线程在外层方法获取锁的时候,再进入该线程的内层方法会自动获取锁(前提锁对象得是同一个对象或者class),不会因为之前已经获取过还没释放而阻塞。

2022-09-23 15:45:33 212

原创 重学java—线程基础

线程:是操作系统进行调度的最小单位。线程不占有内存空间,它包括在进程的内存空间中。在同一个进程内,多个线程共享进程的资源。一个进程至少有一个线程。

2022-09-01 14:29:15 103

原创 重学java—基础知识点

boolean/1byte/8char/16short/16int/32float/32long/64double/64每个类型都有它对应的包装类。自动装箱和拆箱操作valueOf() 方法的实现比较简单,就是,如果在的话就直接返回缓存池的内容a和b是同一个对象Integer 缓存池的大小默认为 -128~127。超过改范围之后,对象就不是同一个了..char数组被final修饰,不可变(Runtime Constant Pool)是虚拟机规范中是。

2022-08-25 10:39:25 344

原创 重学java—面向对象

之前的Java知识零零散散,总觉的自己吃不透;此次复习Java并且再深一步的理解Java知识。

2022-08-19 09:52:04 109

原创 Activity进阶

Activity 进阶

2022-07-04 16:25:06 110 1

原创 andorid sdk打包aar包和jar包

sdk打包

2022-06-30 14:08:40 581

原创 Android构建问题解决方案

1.问题一:解决方法,在app下的build.gradle中加上:packagingOptions {exclude ‘META-INF/DEPENDENCIES’exclude ‘META-INF/NOTICE’exclude ‘META-INF/LICENSE’exclude ‘META-INF/LICENSE.txt’exclude ‘META-INF/NOTICE.txt’}2.问题二:加入依赖 implementation ('com.baidubce:api-explo

2022-04-20 17:20:46 2035

原创 重学Java—注解和反射详解

1.注解的定义:注解是JDK1.5版本开始引入的一个特性,用于对代码进行说明,可以对包、类、接口、字段、方法参数、局部变量等进行注解。它主要的作用有以下四方面: ①.生成文档,通过代码里标识的元数据生成javadoc文档。②.编译检查,通过代码里标识的元数据让编译器在编译期间进行检查验证。③.编译时动态处理,编译时通过代码里标识的元数据动态处理,例如动态生成代码。④.运行时动态处理,运行时通过代码里标识的元数据动态处理,例如使用反射注入实例。2.注解分类:1.Java内置注解java自带

2022-03-09 16:47:10 416

原创 重学java—泛型机制

1.什么是类型擦除Java实现的是一种伪泛型机制,泛型信息(类型变量、参数化类型)编译之后通通被除掉了。使用擦除法的好处就是实现简单,运行期也能够节省一些类型所占的内存空间。而擦除法的坏处就是,通过这种机制实现的泛型远不如真泛型灵活和强大。因为Java的泛型是JDK5新引进的特性,为了向下兼容,虚拟机其实是不支持泛型的,java实际上实现的是一种伪泛型机制,在编译期擦除了所有的泛型信息,不需要产生新的类型的字节码2.大致操作运行当中,会将该泛型类型用顶层父类(若无继承关系则用Object)代替,然

2022-03-07 11:10:14 95

原创 设计模式六大原则

1.单一原则:单一指一个类或者一个方法只负责一项职责,所谓职责是指类变化的原因。如果一个类有多于一个的动机被改变,那么这个类就具有多于一个的职责。而单一职责原则就是指一个类或者模块应该有且只有一个改变的原因。2.里氏替换原则:子类可以扩展父类的功能,但不能改变原有父类的功能。父类中凡是已经实现好的方法(相对抽象方法而言),实际上是在设定一系列的规范和契约,虽然它不强制要求所有的子类必须遵循这些契约,但是如果子类对这些非抽象方法任意修改,就会对整个继承体系造成破坏。3.依赖倒置原则:相对于细节的多变

2022-03-02 09:56:05 47

原创 如何让RecyclerView最后的item不被遮挡

添加两个属性:android:paddingBottom与android:clipToPadding<androidx.recyclerview.widget.RecyclerView android:id="@+id/layout" android:layout_width="wrap_content" android:layout_height="wrap_content"

2022-02-17 18:31:05 1315 1

原创 Kotlin:匿名函数与lambda

匿名函数:1.定义:顾名思义,不取名字的函数,匿名函数通常整体传递给其他函数,或者从其他函数返回2.函数类型:匿名函数可以当作变量赋值给函数类型变量;通常情况下,匿名函数不需要return 关键字来返回数据,匿名函数会隐式或自动返回函数体最后一行语句的结果示例:val testFun:(String)->String = { val day = "Birthday。" "Happy $day" } println(testFun ()) //输出结

2022-02-16 20:01:54 1531

原创 如何将本地项目上传到git

前提工作准备①注册git账号:git官网地址:https://github.com/ ②电脑端安装git客户端正式步骤:1.创建一个本地的版本库:创建一个本地的文件夹,右击文件夹,通过git bash here 来打开,输入命令git init把这个文件夹变成git可以管理的仓库2.将你之前写的代码项目文件夹直接粘贴过来,放进创建好的代码仓库中3.在git官网去创建代码远程仓库,配置好ssh key,选择ssh上代码地址4.将本地的代码提交到远程仓库git add .(将需

2022-02-14 17:34:22 2319

原创 Android 异步处理机制

1.了解异步信息处理四部分:Android中的异步消息处理主要由4个部分组成:Message、Handler、MessageQueue和Looper① MessageMessage是在线程之间传递的消息,它可以在内部携带少量的信息,用于在不同线程之间交换数据例如Message的what字段,除此之外还可以使用arg1和arg2字段来携带一些整型数据,使用obj字段携带一个Object对象。②HandlerHandler顾名思义也就是处理者的意思,它主要是用于发送和处理消息的。发送消息一般是使用Ha

2022-01-22 11:29:08 306

原创 超详细java进阶知识点笔记

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档java进阶前言一、final关键字1.对final的基本认识2.被final修饰后的特点二、常量1.final和static结合2.存储三、抽象类1.类与对象2.抽象类3.抽象方法4.抽象的意义四、接口1.接口的初步认识2.接口的实现3.接口的常见异常(ClassCastException)4.接口的意义5.类和类之间的关系6.抽象类和接口的语法上区别:五、包机制1.使用的原因:2.使用方法:3.命名规范4.import机制六、访问控制权

2022-01-22 09:13:18 2936 1

原创 java基础学习

java基础学习前言一、java的初步认识1.java发展史2.java特性:3.JDK,JRE,JVM4.java的加载和执行原理二、使用步骤1.引入库2.读入数据总结前言java的基础学习阶段,主要是从简单的语法学习到面向对象编程阶段一、java的初步认识1.java发展史98年的时候: Java升级到JDK1.2,Java被分为三大块:J2SE:标准版(基础,要学java,必须先学习SE。基础语法+基础库)J2EE:企业版(专门为企业开发软件,为企业提供解决方案。J2ME:微型版

2022-01-22 09:06:56 71

原创 Andorid 使用网络技术

1.WebView使用:① 获取到了WebView的实例,② 调用WebView的getSettings()方法可以去设置一些浏览器的属性③ setJavaScriptEnabled()方法来让WebView支持JavaScript脚本。setWebViewClient()方法,传入了一个WebViewClient的实例。当需要从一个网页跳转到另一个网页时,目标网页仍然在当前WebView中显示,而不是打开系统浏览器。loadUrl()方法,并将网址传入,展示相应网页的内容在这里插入代码片We

2022-01-21 18:19:37 2720

原创 Kotlin基础学习--初见Kontlin

1.变量val(value的简写)用来声明一个不可变的变量,这种变量在初始赋值之后就再也不能重新赋值,对应Java中的final变量。var(variable的简写)用来声明一个可变的变量,这种变量在初始赋值之后仍然可以再被重新赋值,对应Java中的非final变量。2.函数:语法规则:示例:fun myFunction(param:Int):Int{ return 0}① 首先fun(function的简写)是定义函数的关键字,无论定义什么函数,都一定要使用fun来声明。② 紧跟在f

2021-12-27 14:18:54 359

原创 Android 栈与启动模式

1.Task是我们常说的任务栈,BACK Stack是返回栈2.启动模式:声明启动模式有两种方式1.在Manifest文件中声明待启动的Activity的launchMode属性2.代码中通过intent启动Activity时,设置flagstandard: 标准启动模式:也是默认的启动模式,每次启动 Activity 都会新建一个新的实例。待启动 Activity 会进入源 Activity 所属任务栈。singleTop: 栈顶复用模式:待启动 Activity 已经位于源 Activi

2021-12-09 18:40:16 1335

原创 Android Retrofit实例

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录一、概念二、使用步骤1.添加Retrofit库的依赖2.创建 用于描述网络请求 的接口3.创建Retrofit实例4.发送请求总结一、概念Retrofit 是一个RESTful 的http 网路请求框架的封装,网络请求的工作本质是OKHttp完成,而Retrofit仅仅负责网络请求接口的封装。二、使用步骤1.添加Retrofit库的依赖implementation 'com.squareup.retrofit2:retr

2021-10-21 16:17:57 629

原创 偶有所得安卓基础随笔

安卓系统架构:Linux 内核层,系统运行库层,应用框架层,应用层日志级别:Verbose,debug,info,warn,erroActivityAcivity:可以包含用户界面的组件,主要用于和用户进行交互 <intent-filter>android:name="android.intent.action.MAIN"/></intent-filter>menu使用创建menu文件标识菜单项id,title;重写onCreatOptions.

2021-10-16 13:33:34 210

原创 Android 多媒体播放器

1.Android中播放音频文件通过MediaPlayer类来实现的,常用的控制方法:2.MediaPlayer的工作流程首先需要创建出一个MediaPlayer对象,然后调用setDataSource()方法来设置音频文件的路径,再调用prepare()方法使MediaPlayer进入到准备状态,接下来调用start()方法就可以开始播放音频,调用pause()方法就会暂停播放,调用reset()方法就会停止播放。3.部分代码:获取运行时权限:if(ContextCompat.checkSelf

2021-08-25 14:15:16 405

原创 安卓-APP通知的使用

1.什么是通知通知是Android系统中比较有特色的一个功能,当某个应用程序希望向用户发出一些二提示信息,而该应用程序又不在前台运行时,就可以借助通知来实现。2.通知的基本用法① 首先需要一个NotificationManager来对通知进行管理,可以调用Context的getSystem-Service()方法获取到。该方法接收一个字符串参数用于确定获取系统的哪个服务。传入:Context.NOTIFICATION_SERVICE②需要使用一个Builder构造器来创建Notification对象

2021-08-24 17:59:34 1037

原创 安卓持久化技术

1.文件存储使用openFileOutput创建FileoutputStream;然后创建出BuffuredWrite实例,调用writer方法写入文件中;使用openFileInput()方法创建FileInputStream;然后通过FileInputStream()创建BufferedReader实例,使用read方法从文件中读出。2.SharedPreferences存储...

2021-08-24 14:19:10 41

原创 广播(Broadcast)

1.广播的机制Android中的每个应用程序都可以对自己感兴趣的广播进行注册,这样该程序就只会接收到自己所关心的广播内容,这些广播可能是来自于系统的,也可能是来自于其他应用程序的。2.广播的类型**①标准广播(Normal broadcasts)**是一种完全异步执行的广播,在广播发出之后,所有的广播接收器几乎都会在同一时刻接收到这条广播消息,因此它们之间没有任何先后顺序可言。这种广播的效率会比较高,但同时也意味着它是无法被截断的。**②有序广播(Ordered broadcasts)**则是一种

2021-08-18 14:29:14 83

原创 碎片(Fragment)

1.碎片是什么碎片是一种可以嵌入在活动当中的UI片段2.动态使用碎片:①创建碎片管理者(FragmentManger),使用get方法②创建碎片Transaction,使用begin…方法③使用fragmentTransaction调用方法,完成碎片的操作,最后commit提交。3.在Activity中获取Fragment中的控件和方法:Button button=getFragmentManager().findFragmentById(R.id.right_fragment).getVie

2021-08-18 10:15:59 81

原创 Hashtable和HashMap的区别

1、父类不同:HashMap是继承自AbstractMap类,而HashTable是继承自Dictionary。2、null值问题Hashtable既不支持Null key也不支持Null value。HashMap中,null可以作为键,这样的键只有一个;可以有一个或多个键所对应的值为null。3、线程安全性Hashtable是线程安全的,它的每个方法中都加入了Synchronize方法。HashMap不是线程安全的,在多线程并发的环境下,可能会产生死锁等问题。使用HashMap时就必须要

2020-12-07 10:53:52 37

原创 超详细计算机网络知识点

超详细计算机网络知识点第一章 概述第二章 物理层第三章 数据链路层第四章 网络层第五章 运输层第六章 应用层第一章 概述互联网的特点:连通性和共享性 连通性——计算机网络使上网用户之间都可以交换信息,好像这些用户的计算机都可以彼此直接连通一样。共享——即资源共享。可以是信息共享、软件共享,也可以是硬件共享。计算机网络的定义:自主计算机的互联集合互联网基础结构发展的三个阶段:1)单个网络ARPANET向互联网发展的过程2)建立了三级结构的互联网3)形成了多层ISP结构的互联网 1983年的网络

2020-11-27 16:26:20 765

原创 四种设计模式详解

四种设计模式详解一、单例模式1、单例模式的定义:2、单例模式实现方法:二、抽象工厂1、抽象工厂定义2、Abstract Factory模式的结构:3、程序举例:4、在什么情形下使用抽象工厂模式:5、抽象工厂的起源6、Abstract Factory模式在实际系统中的实现7、"开放-封闭"原则三、观察者模式四、通用层次模式一、单例模式1、单例模式的定义:单例模式是设计模式中最简单的形式之一。这一模式的目的是使得类的一个对象成为系统中的唯一实例。要实现这一点,可以从客户端对其进行实例化开始。因此需要用一

2020-11-21 19:17:57 1011

原创 基于体系结构的软件开发

基于体系结构的软件开发一、设计模式的概念二、4种设计模式三、中间件四、ABSD方法主要步骤五、基于体系结构的软件开发模型步骤(ABSDM)一、设计模式的概念模式是指从某个具体的形式中得到的一种抽象,在特殊的非任意性的环境中,该形式不断地重复出现。一个软件体系结构的模式描述了一个出现在特定设计语境中的特殊的再现设计问题,并为它的解决方案提供了一个经过充分验证的通用图示。解决方案图示通过描述其组成构件及其责任和相互关系以及它们的协作方式来具体指定。二、4种设计模式创造型模式:单例(singl

2020-11-21 11:17:22 636

原创 软件体系结构评估

软件体系结构评估一、软件质量二、软件体系结构评估的主要方式三、ATAM评估的步骤四、SAAM评估的步骤一、软件质量(1)性能(2)可靠性(容错、健壮性)(3)可用性(4)安全性(机密性、完整性、不可否认性、可控性)(5)可修改性(可维护性、可扩展性、结构重组、可移植性)(6)功能性(7)可变性(8)可集成性(9)互操作性二、软件体系结构评估的主要方式(1)基于调查问卷或检查表的评估方式(2)基于场景的评估方式(3)基于度量的评估方式三、ATAM评估的步骤四、SAAM评估

2020-11-21 10:47:33 2340 1

原创 基于服务的体系结构-SOA

基于服务的体系结构-SOA一、SOA定义二、SOA的特征三、SOA的设计原则四、SOA的关键技术(技术栈5层)五、WSDL – 基本服务描述六、UDDI作用七、SOAP作用八、SOAP包含哪几部分(4部分)一、SOA定义SOA(面向服务架构)是一种应用程序体系结构,在这种体系结构中,所有功能都定义为独立的服务,这些服务带有定义明确的可调用接口,能够以定义好的顺序调用这些服务来形成业务流程。二、SOA的特征(1)松散耦合 (2)粗粒度服务 (3)标准化接口三、SOA的设计原则(1)明确定义的接口(

2020-11-20 22:34:35 1002

原创 ActiveMQ的下载和使用

目录前言 一、ActiveMQ是什么? 二、ActiveMQ的作用 三、ActiveMQ的特征 四、ActiveMQ的安装和使用 下载ActiveMQ与启动前言如何使用ActiveMQ,简单明了的下载安装ActiveMQ,并且完成登录和使用。提示:以下是本篇文章正文内容,下面案例可供参考一、ActiveMQ是什么?Apache ActiveMQ是Apache软件基金会所研发的开放源代码消息中间件;由于ActiveMQ是一个纯Java程序,因此只需要操作系..

2020-10-17 21:41:48 274 1

空空如也

空空如也

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

TA关注的人

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