自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 资源 (1)
  • 收藏
  • 关注

原创 如何使用Ping命令检测网络连通性?

ping(Packet Internet Grouper)是一种因特网包探测器,用于测试网络连接量的程序,Ping是工作在TCP/IP网络体系结构中应用层的服务命令,主要是向特定的目的服务器发送ICMP(Internet Control Message Protocol 因特网报文控制协议)Echo 请求报文,测试目的站是否可达及了解其有关状态。

2023-12-18 20:30:56 713

原创 深入理解WebSocket协议

既然提到了跨域,我们还是先弄清什么是跨域。在了解什么是跨域的时候,我们首先要了解一个概念,叫同源策略,什么是同源策略呢,就是我我们的浏览器出于安全考虑,只允许与本域下的接口交互。不同源的客户端脚本在没有明确授权的情况下,不能读写对方的资源。是什么意思呢,就比如你刚刚登录了淘宝买了东西,但是你现在又点进去了另外一个网站,那么你现在的淘宝账户是属于登录状态,而并没有登出,所以你现在点进去的这个网站可以看到你的账户信息,并操作你的账户信息,这样子就很危险。我们再来了解一个概念,就是本域,什么是本域呢?

2023-03-17 22:48:40 3259 7

原创 RTMP摄像头直播-CameraX数据采集处理

在很久以前一直想转音视频方向,一直没有机会,毕竟想跨入这个方向,确实有一些难度。虽然现在项目中也有音视频相关的东西,无奈都不是我负责。人生嘛总会遇到容易的事情和困难的事情,如果总是逃避困难的事情,想想也没有什么意义,当然适当强迫一下自己,或许会收到不一样的结果。在学习的过程中,学会总结和输出真的太重要了,如果别人看到后有收获,当然是值得开心的了,更多的是自己在总结和输出的时候,往往有更多的收获和对某个知识的理解。//图像格式 int format = image . getFormat();...

2022-08-18 00:31:01 685 1

原创 Android组件化开发实战

前言本文只是我在开发过程中一步一步总结的实战经验,若有疑问,欢迎私信,留言讨论。您的支持是对我最大的鼓励。文章目录前言组件化概述项目地址前置知识组件通信补充说明引入kapt插件引入AutoService服务搭建组件化框架自定义注解ITabPage如何使用ITabPage注解组件化概述组件化不同于模块化,是可独立运行的module,module可以独立打包测试运行,业务解耦,解决65536问题,可拆卸,便于协同开发而不受其它业务模块影响。如果还不了解组件化是什么,我为你贴心准备了以下连接,请前往下方连

2021-05-26 21:46:01 256 2

原创 自定义plugin+includeBuild构建项目实战

build.gradle我们一定再熟悉不过了,不同module中的依赖版本统一尤为重要,通常我们都会新建一个config.gradle的文件,如下所示:ext { android = [ compileSdkVersion : 29, buildToolsVersion : "30.0.2", applicationId : "com.xionggouba.bearseller",

2021-05-23 16:30:11 3356

原创 Android连接蓝牙打印机

前言在之前写过一篇文章Android操作蓝牙打印机(上),当时也是因为自己在工作中确实走了许多弯路,所以计划着用两篇文章详细阐述蓝牙打印的整个流程,后来由于接近年底,任务比较多,所以就暂且搁置了。再后来发现当时的设计仍有许多不足,最头疼的就是与业务代码参杂在一起,不够解耦。由于上一篇文章描述了当时自己在工作中的经历与思考,所以有好几个同学私信我,能不能发一份代码参考一下,介于种种原因,于是决定将蓝牙部分抽离出来,与业务代码分离,做成了lib形式。git仓库https://github.com/zhuh

2021-05-18 21:32:09 5230 4

原创 手写一个队列容器

最近在处理订单业务中,需要一个队列容器,最开始想使用java提供的Stack,发现很不容易拓展,比如Activity间传递数据或者Activity和Service数据传递,是无法put一个Stack的,所以自己实现一个实现Serializable接口的队列容器,方便数据传递。不能实例化泛型数组问题当我在实现过程中,首先遇到的问题是不能写如下代码: private final T[] queue; public OrderQueue(int size) { this.queue =

2021-04-14 20:03:11 125

原创 Flutter(进阶)GetX+BottomNavigationBar实现首页底部导航

GetX是什么?关于GetX是什么,git上面有官方文档,GetX,这里有一篇详细介绍GetX使用详解,GetX使用详解无意间发现GetX由于flutter2的发布,感觉还是有必要去了解flutter了,最近也是打算系统学习flutter,之前也是有过打算,基本没付诸行动,当我在看状态管理provider相关知识时,无意间发现了GetX这一神器,所以就打算把之前写的首页底部导航,部分功能使用GetX改造一番。当我升级了flutter sdk到最新版后,在控制台敲入flutter run 直接跑在了浏

2021-03-23 21:11:20 4178 5

原创 TextView设置Html文本

关于解决一行文本中出现不同字体颜色,以及字体大小问题方案①使用SpannableString方法,代码如下所示:fun spannableTextColor( text: String, color: Int, start: Int, end: Int, clickListener: ClickListenerEmptyData): SpannableString { val spannable: SpannableString = SpannableS

2021-03-17 20:29:00 343

原创 Handler通信-源码分析

仍然记得刚开始学习android时,一直使用handler发送消息更新UI,只知道handler可以把消息发送到主线程,后来为了面试,就在网上找了Handler,MessageQueue,以及Looper三者的解析答案,背的很熟,当面试官一问三者之间的关系时,不假思索的直接背了出来,一问细节原理,啥也不知道。在后来随着工作经验的积累,发现Hanldler在整个Android系统中的角色举足轻重,它的产生并不只是用于UI处理,而更多的是handler是整个app的通信框架,我们可以在ActivityThrea

2021-03-05 22:55:24 115

原创 解决git中 failed to push some refs to 问题

今天在向git仓库提交代码时出现如下错误:出现原因,是因为我在办公室里提交了代码,回到家中执行git pull 怎么也拉取不到最新的代码,所以导致家中的电脑无法提交解决办法:输入 git pull --rebase origin master拉去最新代码后再提交本地代码...

2021-02-27 20:58:00 365

原创 自定义RadioGroupX实现多行多列布局

前言今天在做新需求的时候,活动有多个类型可以选择,UI给的设计图为多行多列排版,且单项选择,细细想来,谷歌并没有为我们提供类似的控件,初步设想使用RecyclerView实现多行多列布局,然后再用代码控制逻辑部分,总感觉不太稳妥,又想到让UI小姐姐重新设计一番?感觉也不太稳妥,这样UI小姐姐就会认为我菜,为了不让別人觉得我菜,干脆自定义RadioGroupX实现多行多列布局。思考在工作中,面对一个功能,首先想到的是应该怎样实现完成它,然后再考虑究竟怎样实现才更优雅。正如前面提到,实现这种需求是可以用多

2021-02-26 22:12:36 471 1

原创 android操作蓝牙打印机(上)

前言工作中或多或少都会遇到困扰自己很久的问题,我也毫无例外,曾经在项目中对蓝牙打印这一块也困惑和迷茫过,最近在做项目重构的时候,翻看了之前写的代码,还是决定通过两篇文章详细阐述蓝牙连接打印机完成整个打印流程的操作,目的是对工作的一种总结,其次是输出。好比玩个压缩,又是绿叉又是无尽,一身暴击 装,却不知怎么打输出,好像特无语,工作中应该也是一样,学会总结和输出这样才能提升自己,当然也希望能帮助在蓝牙打印方面存在疑惑和困扰的同学,希望在看完这两篇文章后能对经典蓝牙有更多了解和认识。概述我将通过上下两部分,

2021-01-26 22:37:26 1073 2

原创 注解+反射+动态代理实现View点击事件绑定

一、一些感想其实在工作的过程中,我一直感觉自己的java基础还是很薄弱的,所以不得不重新看看java基础,其实注解在Android应用实在很广泛,它让代码简介,并且解耦,提高了很多开发效率。为了巩固对基础知识的理解,所以干脆使用注解+反射+动态代理实现View的点击事件绑定功能,加深印象。在整个实现过程中要求的知识点还是比较多,首先要熟悉Android View点击事件,当然如果对注解不了解,那...

2020-05-06 22:29:55 454 1

原创 从源码分析addView子控件match_parent失效问题

addView()方法使用心得addView方法可以满足动态添加布局需求,于是乎就出现了布局加进去后不是我们想要的效果,我开始以为是我子布局设置了什么属性,仔细看了布局却发现没什么错误,所以猜想大概是addView时出了问题。我的使用如下: View view = null; LayoutInflater layoutInflater = LayoutInflater.fro...

2020-04-25 19:03:16 369

原创 记录 Error while Launching activity

今天实属被这个错误给坑惨了,折腾了好几个小时,无论我怎么build和clean就是不能跑起来,网上也有方法,无论我怎么尝试就是不能run起来,折腾的欲哭无泪啊。最后暴力解决办法:删除工程里的 *.iml结尾和app module 中*.iml结尾的连个文件,然后我从别的工程复制了这两个文件,最后竟然run起来了,不知道是什么原因导致,好在给run起来,也能开始干活了,特此分享给和我一样遇...

2020-04-23 16:02:37 205

原创 关于Android java.io.FileNotFoundException: open failed: EACCES (Permission denied)

问题描述:最近在Android10 访问相册时一直报EACCES (Permission denied),java.io.FileNotFoundException: open failed: EACCES (Permission denied) at android.os.ParcelFileDescriptor.openInternal(ParcelFileDescr...

2020-04-08 16:15:48 5621 10

原创 Service和Activity通信总结

一点感想说感想也算是工作中的一些总结吧,做项目基本都会使用Service这一四大组件,服务和Activity通信便是我们经常需要处理的问题,这里我说一说我比较熟悉的几种方式:①BroadcastReceiver形式,这个是我最开始使用的方式,但是效率特别低,尤其是数据量大的时候,其次需要注册广播,解绑等等工作需要做,反而觉得很繁琐;②Hander方式,实际工作中我用的很少;③EventBu...

2020-03-11 23:17:51 471

原创 hook View点击事件(View事件劫持)

引入最近在做项目优化的时候,发现点击某个控件使用某个功能时,事先要判断用户是否登录,翻看代码时发现很多地方写了大量的if或else的操作,代码繁琐,一旦一处修改将涉及到n处修改,于是通过hook的方式,劫持View的点击事件,一行代码做完所有的if或else,代码简洁。####什么是hookhook网上有大量的解说,我自己认为就是通过钩子函数改变原函数的执行行为。加入自己的思想。参考:ht...

2020-03-10 08:42:36 857

原创 Android获取SHA1和MD5签名

1,在android studio中打开Terminal控制台2,找到工程的签名文件以jks结尾,比如:E:\android\QianKouDai\QianKouDai\app\qiankoudai.jks3,控制台中输入:keytool -list -keystore D:\android\MySrc\BdMember\app\bdmember.jks4,输入创建签名文件时的密钥...

2018-12-27 09:49:22 301 1

原创 Android studio 连接MuMu模拟器

MuMu模拟器连接android studio 1,打开android studio控制台:2,命令行进入MuMu安装bin目录:cd D:\myProgram\mumu\emulator\nemu\vmonitor\bin 3,连接模拟器:adb_server.exe connect 127.0.0.1:7555 执行结果:adb server is ou...

2018-11-30 10:34:17 2363

原创 Android TextView改变部分字体颜色

Android经常会遇到一行字体中要出现不同颜色,比如<<用户协议>>着重突出等,关于Android TextView改变部分字体颜色使用,我们将"要改变的字体颜色"中的"颜色"变色,使用大致如下:SpannableString spannableString = new SpannableString("要改变的字体颜色");spannableString.se...

2018-11-06 23:18:22 2188

原创 Sublime Text3 配置Python3环境

关于Sublime Text3中配置Python开发环境1,打开Sublime Text开发工具,找到Tools工具栏,点击展开找到Build System选项,继续点击展开新建Build System:2,在新建的Build System中写入以下代码:{ "cmd":["C:/Python3/python.exe","-u","$file"], "file_regex":"^[]*File \.

2018-06-02 17:08:16 4673

原创 Python环境搭建以及urllib request模块使用

问题引入:也是刚接触python,然后就就在python官网上下载了python2.7版本,但是在使用urllib request模块时一直报错,后来解决办法是将python升级到最新版本就可以使用,python3中自带urllib request模块。request模块使用:# coding=utf-8from urllib.request import urlopenhtml = ur...

2018-05-30 12:51:43 6179 1

原创 对Java建造者模式(Builder)的一点理解

    一,Builder模式介绍    Builder模式是一步一步创建一个复杂对象的创建型模式,它允许使用者在不知道内部建造细节的情况下,可以更精细的控制对象的构造流程。该模式是为了将构建复杂对象的过程和它的部件解耦,是的构建过程和不见得表示隔离开来。    因为一个复杂的对象有很多大量组成部分,如电脑,有主机,显示器,操作系统,还有各种小零件等,如何将这些不见组建成一台电脑,这个装配过程很漫...

2018-05-28 22:38:33 2474

原创 解决Android studio Error:Execution failed for task ':app:preDebugAndroidTestBuild'

问题描述:发现在使用Android studio新建完项目的时候每次都会报一个错误:意思大概是应用程序和测试应用程序版本不同所致。解决方法1:我们可以重新构建项目(rebuild project)解决方法2:我们将依赖中的com.android.support:appcompat-v7版本改为报错中提到的测试版本:最后将项目同步一下就可以解决。...

2018-05-28 18:37:17 2392

原创 关于解决Python中requests模块在PyCharm工具中导入问题

问题引入:今天在学习Python网络请求的时候,导入requests模块时一直报红色波浪线,如图:反复折腾,一直以为自己没有安装requests模块,反复安装反复卸载:安装方法:首先 cd 进入C:\Python27\Scripts 执行 pip install requests 命令可以自动安装卸载方法:首先 cd 进入C:\Python27\Scripts 执行 pip uninstall r...

2018-05-28 14:39:37 31146 36

原创 解决You are using pip version 9.0.3, however version 10.0.1 is available. You should consider upgradin

今天在下载安装第三方依赖库时,一直出现黄色警告:解决办法:python -m pip install --upgrade pip更新pip时注意不是在Scripts,而是直接在用户目录下。运行后结果:...

2018-05-25 10:40:50 6746

原创 Android使用MQTT实现消息发布与订阅

关于MQTTMQTT中文文档MQTT GitHubMQTT协议规范MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分。该协议支持所有平台,几乎可以把所有联网物品和外部连接起来,被用来当做传感器和制动器(比如通过Twitter让房屋联网)的通信协议。MQTT应用通过MQTT协议,目前已经扩...

2018-05-18 00:05:20 8908 5

原创 React Native 中对Fetch网络请求框架的二次封装

RN中提供了fetch网络请求框架,使用起来已经很方便了,为了不重复写同样的代码,所以对其作了二次封装,使用起来感觉很方便。一,fetch封装:export default class FetchManager {    /*     *  get请求     *  url:请求地址     *  data:参数     *  callback:回调函数     * */    static ge...

2018-05-02 22:05:34 938

原创 关于android方法总数超过64或者超多过65536问题解决

问题描述:Information:Gradle tasks [:app:assembleDebug]Error:The number of method references in a .dex file cannot exceed 64K.Learn how to resolve this issue at https://developer.android.com/tools/building...

2018-05-02 18:26:46 506

原创 Android 中关于吐司Toast带文字和图片的封装。

Android中我们常用的提示功能就是Toast了,最近使用Toast的时候出现了一些不可预料的错误,分析才发现是由Toast实例太多引起导致,所以基于系统Toast封装了带图片和文字Toast,并且永远只有一个Toast实例,大大减少了内存开销。实现思路:1,关于如何实现只带文字显示,事先判断当前Toast是否存在,如果不存在我们才获取Toast实例,如果存在就直接设置text,实现如下:if ...

2018-04-28 14:07:09 616

原创 Android一键锁屏实现

        很久很久才发现,自己手机软件中没有自带一键锁屏的功能,害怕电源键寿命太短,于是就去市场下了一个解决这个需求,到最后发现这些软件中都有广告或者捆绑有插件,一怒之下就自己做了一个一键锁屏。其实感觉实现起来不是很困难,由于目前技术存在缺陷,还不不知道怎么更改Framwork层做到应用保活,目前跑在性能稍微差些的手机上第一次启动也就是冷启动的时候有点延迟,个人认为基本可以忽略不计,性能好的...

2018-04-27 18:18:36 2919

原创 Android中EventBus事件总线发送网络请求结果更新UI

Android中通常耗时操作我们都需要另起线程,比如请求服务器获取数据,而请求数据成功后却不能在子线程中更新UI,Android提供了AsyncTask,Handler等机制更新UI,又或者RXJava(开源框架)、接口回调等都可以实现子线程和UI线程通信。其实通过EventBus订阅与发布方式更新UI也很方便。一,首先我们导入依赖 compile 'org.greenrobot:eventbus...

2018-04-11 18:59:19 1658

原创 关于使用Butterknife 8.5.1版本报空指针或者点击事件没有反应处理

今天也是开始写了一个新的项目就重新导了Butterknife注解框架,直接在项目依赖中添加compile 'com.jakewharton:butterknife:8.5.1'但是发现textView.setText(”设置文字“)时一直报Caused by: java.lang.NullPointerException并且点击控件时没有任何反应,使用方法:public class MainAct...

2018-04-10 18:27:57 750 2

原创 Android自定义底部菜单实现Fragment切换

关于android自定义底部菜单实现与Fragment间的切换,实现过程大体如下:attrs.xml中的内容:<resources> <attr name="text" format="string"/> <attr name="icon_normal" format="reference"/> &

2018-04-07 16:23:30 2838 4

原创 关于Android中log日志(LogUtil)的封装

为了便于开发,特此封装了一个日志工具类,可以具体到类名,方法名,行数;代码如下:public enum LogUtil { INSTANCE; private final static boolean all = true; private final static boolean i = true; private final static boolean...

2018-03-29 21:52:36 1445

原创 关于Android中TabLayout使用总结

为了便于记忆特此写下:效果图:使用步骤:a,导入design依赖 b,Xml布局文件<android.support.design.widget.TabLayout android:id="@+id/tabLayout" android:layout_width="match_parent" android:layout_height="wrap_content" ...

2018-03-28 23:02:45 1845 2

原创 Android6.0及以上动态申请权限详细讲解

不知不觉Android已经到了8.0,记得刚开始6.0刚出来的时候也是看了别人写的一些文章这么慢慢的过来了,转眼已经快要两年了,感叹时光过的好快,然而不知道自己到底进步了多少。也许因为自己很懒,不善于总结,导致有时候明明之前见过某个知识点,却又给忘了。当后来慢慢写笔记的时候,我发现笔记对自己真的很重要,假如某个知识忘了,一下子就知道自己记过,在某个地方,如果不总结的话,就要花很多时间找资料,所以希望

2017-07-24 00:42:33 473

原创 React native自定义组件之Button按钮

最近也是在自学react native这一块,其中也踩了不少坑,由于使用windows环境,可能是因为运气不好,最开始配环境的时候就出现了很多问题,当成功之后也发现,啊哈,原来如此,有一朋友就很顺利一遍就成功。好了还是进入主题,在Android原生开发中我们大多都会事先在drawable中定制几个按钮然后在项目中直接调用很方便。当然,在react native开发中我们也可以事先写好一个button

2017-07-18 23:01:13 3866

mqtt详细例子

android使用mqtt例子

2018-05-18

空空如也

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

TA关注的人

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