自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

iblade的博客

明年的某个时候,你会想着要是今天就行动了该多好。

  • 博客(393)
  • 资源 (9)
  • 收藏
  • 关注

原创 ADB常用命令input

参考文献:https://blog.csdn.net/m0_61442607/article/details/120149209。其中KEYCODE_1代表1,KEYCODE_9代表9,KEYCODE_A代表A,以此类推。

2023-12-15 19:36:24 71

原创 ADB常用命令

【代码】ADB常用命令。

2023-12-15 18:53:11 64

原创 Linux 中安装Python3 的详细步骤

以下回答来自ChatGPT4.0。

2023-12-15 17:54:28 326

原创 Linux 服务器使用 ssh 密钥登录

将 AuthorizedKeysFile 设置为存储公钥的路径和文件名,例如:AuthorizedKeysFile ~/.ssh/authorized_keys,表示公钥文件存储在当前用户的 .ssh 目录下的 authorized_keys 文件中。注意:禁用密码登录后,请保管好你的 SSH 密钥文件,如果 VPS 提供商提供 VNC 远程控制可以很容易恢复,如果没有就……所以这次就来配置使用 ssh 密钥来登录服务器,员工在自己的本机上生成密钥和公钥,然后将公钥发给领导在服务器上配置好。

2023-12-15 17:42:25 245

原创 Android多国语言翻译 国际化(i18n)

Latvian, Latvia (lv-rLV) ———————————拉托维亚语,拉托维亚。Slovak, Slovakia (sk-rSK) ——————————斯洛伐克语,斯洛伐克。Italian, Italy (it-rIT) —————————————意大利语,意大利。Turkish, Turkey (tr-rTR) ——————————-土耳其语,土耳其。Arabic, Israel (ar-rIL) ——————————-阿拉伯语,以色列。

2023-12-15 17:01:50 1704

原创 Git忽略已经提交的文件

原理类似于。

2023-12-15 16:48:41 120

原创 Android修改submodule的lib包名

因为Linux对大小写敏感,MacOS默认大小写不敏感,在服务器运行代码时,Lib和lib不统一 ,会导致路径寻找失败。拷贝出LibStat对应的url(git地址),然后删除红框内容。新建路径重复步骤 “一、正常使用submodule的流程”发现新拉取的代码 包名已修改成功。删除git cached。重新添加libStat。

2023-12-15 12:05:30 162

原创 Python安装报错: error: externally-managed-environment,This environment is externally managed

这个错误信息表示当前Python环境是由系统外部管理的,通常在某些Linux发行版中(尤其是Debian和基于Debian的系统,比如Ubuntu),系统会强烈建议不要直接使用pip来安装包,以避免与系统包管理器(如apt)的潜在冲突。根据错误信息提供的建议,你有几个选项来安装requests。

2023-12-14 19:01:29 8353 1

原创 安装多个JDK:Unable to make field private final java.lang.String java.io.File.path accessible

另外经常编译项目 强烈建议大家 能配置多个编译环境。直接terminal中./gradlew assembleRelease时也随时能切换。

2023-09-25 12:03:06 3793

原创 java.lang.NoSuchMethodError: java.lang.reflect.Field.trySetAccessible()Z

File --Project Structure – SDK Location --Gradle Setting --Gradle JDK 选择11。将JDK升级为11即可。

2023-09-13 18:20:58 172

原创 Android Studio 中AGP ,Gradle ,JDK,SDK都是什么?

在 Android 开发中,Android SDK 提供了开发 Android 应用所需的一系列工具、库和文件。综上所述,Android Gradle Plugin 和 Gradle 一起用于构建 Android 应用,JDK 提供 Java 编译器和运行时环境,SDK 则提供 Android 平台的工具和库。Android Gradle Plugin 是一个由 Google 提供的构建工具,它与 Gradle 配合使用来构建和打包 Android 应用。JDK 是 Java 开发工具包的缩写。

2023-09-13 18:09:13 1109

原创 动态规划笔记(一)

以这道题为例,最后一步指的是:兑换硬币的时候,假设每一步操作总是选择一个硬币,那么我们看一下最后一步如何达到 amount?以给定的输入为例:最后一步可以通过以下 3 个选项得到:已经用硬币兑换好了 10 元,再添加 1 个 1 元的硬币,凑成 11 元;已经用硬币兑换好了 9 元,再添加 1 个 2 元的硬币,凑成 11 元;已经用硬币兑换好了 6 元,再添加 1 个 5 元的硬币,凑成 11 元。接下来,应该立即将以上 3 个选项中的未知项展开成子问题!

2023-08-03 17:33:40 347

原创 BitmapFactory: inSampleSize 的一些思考

实际测试下还好,基本可以满足不OOM的需求,但是隐隐觉得当inSampleSize的值很大的时候,图片的压缩质量会不会太严重?比如说App内中的相册功能,采用这个算法放大的时候,图片会不会变得很不清楚?一时也没有找到特别好的压缩算法。关于inSampleSize的取值问题Google已经给出了一个推荐的算法:(https://developer.android.com/topic/performance/graphics/load-bitmap)保证不管我放置在任何文件夹,图片都不会被缩放。

2023-07-28 11:37:02 482

原创 华为刷题:HJ3明明随机数

【代码】华为刷题:HJ3明明随机数。

2023-07-27 13:15:34 915

原创 设计模式之美——20条编程技巧

如果在同一个项目中,不同的同事使用不同的缩进方式(空格缩进或 tab 键缩进),有可能会导致有的代码显示为两格缩进、有的代码显示为四格缩进。在类中,成员变量排在函数的前面。除此之外,成员变量之间或函数之间,还会按照作用域范围从大到小的顺序来排列,先写 public 成员变量或函数,然后是 protected 的,最后是 private 的。在类内部,成员变量与函数之间、静态成员变量与普通成员变量之间、函数之间,甚至成员变量之间,都可以通过添加空行的方式,让不同模块的代码之间的界限更加明确。

2022-11-24 23:29:33 893 1

原创 设计模式之美——解耦

除此之外,因为 open() 函数基于抽象而非具体的实现来定义,所以我们在改动 open() 函数的底层实现的时候,并不需要改动依赖它的上层代码,也符合我们前面提到的“高内聚、松耦合”代码的评判标准。不管是阅读代码还是修改代码,“高内聚、松耦合”的特性可以让我们聚焦在某一模块或类中,不需要了解太多其他模块或类的代码,让我们的焦点不至于过于发散,降低了阅读和修改代码的难度。而且,因为依赖关系简单,耦合小,修改代码不至于牵一发而动全身,代码改动比较集中,引入 bug 的风险也就减少了很多。

2022-11-24 23:00:41 1372

原创 设计模式之美——单元测试和代码可测性

单元测试由研发工程师自己来编写,用来测试自己写的代码的正确性。我们常常将它跟集成测试放到一块来对比。单元测试相对于集成测试(Integration Testing)来说,测试的粒度更小一些。集成测试的测试对象是整个系统或者某个功能模块,比如测试用户注册、登录功能是否正常,是一种端到端(end to end)的测试。而单元测试的测试对象是类或者函数,用来测试一个类和函数是否都按照预期的逻辑执行。这是代码层级的测试。

2022-11-24 22:49:18 1407

原创 设计模式之美——重构

一方面,重构代码对一个工程师能力的要求,要比单纯写代码高得多。重构需要你能洞察出代码存在的坏味道或者设计上的不足,并且能合理、熟练地利用设计思想、原则、模式、编程规范等理论知识解决这些问题。另一方面,很多工程师对为什么要重构、到底重构什么、什么时候重构、又该如何重构等相关问题理解不深,对重构没有系统性、全局性的认识,面对一堆烂代码,没有重构技巧的指导,只能想到哪改到哪,并不能全面地改善代码质量。

2022-11-24 20:45:07 1122

原创 设计模式之美——实战MVC的意义

对于一个工程师来说,如果要追求长远发展,你就不能一直只把自己放在执行者的角色,不能只是一个代码实现者,你还要有独立负责一个系统的能力,能端到端(end to end)开发一个完整的系统。这其中的工作就包括:前期的需求沟通分析、中期的代码设计实现、后期的系统上线维护等。大部分工程师都是做业务开发的。很多工程师都觉得,做业务开发没啥技术含量,没有成长,就是简单的 CRUD,翻译业务逻辑,根本用不上专栏中讲的设计原则、思想、模式。技术人也要有一些产品思维。对于产品设计、需求分析,我们要学会“借鉴”,一定不要自己闷

2022-11-24 20:24:27 1170

原创 设计模式之美——DRY原则 和 迪米特法则

尽管我们还是要往 DemoClass_1 的构造函数中,传入包含序列化和反序列化的 Serialization 实现类,但是,我们依赖的 Serializable 接口只包含序列化操作,DemoClass_1 无法使用 Serialization 类中的反序列化接口,对反序列化操作无感知,这也就符合了迪米特法则后半部分所说的“依赖有限接口”的要求。复用意识也非常重要。对于高度耦合的代码,当我们希望复用其中的一个功能,想把这个功能的代码抽取出来成为一个独立的模块、类或者函数的时候,往往会发现牵一发而动全身。

2022-11-24 16:57:33 1058

原创 设计模式之美——KISS、YAGNI原则

KISS 原则算是一个万金油类型的设计原则,可以应用在很多场景中。它不仅经常用来指导软件开发,还经常用来指导更加广泛的系统设计、产品设计等,比如,冰箱、建筑、iPhone 手机的设计等等。我们知道,代码的是衡量代码质量非常重要的两个标准。而 KISS 原则就是保持代码可读和可维护的重要手段。代码足够简单,也就意味着很容易读懂,bug 比较难隐藏。即便出现 bug,修复起来也比较简单。下面这三段代码可以实现同样一个功能:检查输入的字符串 ipAddress 是否是合法的 IP 地址。

2022-11-24 11:49:25 1093

原创 设计模式之美——依赖反转原则

依赖反转原则用起来比较简单,但概念理解起来比较难。

2022-11-23 23:58:27 868

原创 设计模式之美——里式替换原则 和 接口隔离原则

单一职责原则针对的是模块、类、接口的设计。但我们可以结合老师说的,判定职责是否单一,要懂得结合业务场景,业务需求,此方法,其实就是要通过JDK提供的CAS乐观自选锁(方法最终依赖硬件指令集原语,Compare And Swap)从“原语”这一词的含义看,其实也是同时、原子性地做了一件“完整”的事情,因此,考虑这一点,是可以判定它符合单一职责的。而这其实正是单一职责判定结果,往往见仁见智的原因:基于不同的角度,不同的立场,不同的业务理解,往往可以得到不同的判定结果,但不必纠结,判定过程中用到的思想才是精髓。

2022-11-23 23:21:59 982

原创 设计模式之美——单一职责原则和开闭原则

看懂”和“会用”是两回事,而“用好”更是难上加难。SOLID 原则:SRP单一职责原则(the single responsibility principle )OCP开闭原则(the open closed principle)LSP里氏替换原则(the liskov substitution principle)ISP接口独立原则(the interface segregation principle)

2022-11-23 22:06:27 1244

原创 设计模式之美——DDD充血模式

领域驱动设计(Domain Driven Design,简称 DDD)基于贫血模型的传统开发模式,将数据与业务逻辑分离,违反了 OOP 的封装特性,实际上是一种面向过程的编程风格。但是,现在几乎所有的 Web 项目,都是基于这种贫血模型的开发模式,甚至连 Java Spring 框架的官方 demo,都是按照这种开发模式来编写的。面向过程编程风格有种种弊端,比如,数据和操作分离之后,数据本身的操作就不受限制了。任何代码都可以随意修改数据。

2022-11-23 18:14:26 1111

原创 设计模式之美——多组合少继承

组合优于继承,多用组合少用继承。

2022-11-23 17:18:55 1031

原创 设计模式之美——基于接口编程

将接口和实现相分离,**封装不稳定的实现,暴露稳定的接口**。上游系统面向接口而非实现编程,不依赖不稳定的实现细节,这样当实现发生变化的时候,上游系统的代码基本上不需要做改动,以此来降低代码间的耦合性,提高代码的扩展性。

2022-11-23 16:47:04 998

原创 设计模式之美——接口VS抽象类

在面向对象编程中,抽象类和接口是两个经常被用到的语法概念,是面向对象四大特性,以及很多设计模式、设计思想、设计原则编程实现的基础。比如,我们可以使用接口来实现面向对象的抽象特性、多态特性和基于接口而非实现的设计原则,使用抽象类来实现面向对象的继承特性和模板设计模式等等。

2022-11-23 16:27:13 764

原创 设计模式之美——看似面向对象,实则面向过程

常见的编程范式或者说编程风格有三种,面向过程编程、面向对象编程、函数式编程,而面向对象编程又是这其中最主流的编程范式。现如今,大部分编程语言都是面向对象编程语言,大部分软件都是基于面向对象编程这种编程范式来开发的。总以为把所有代码都塞到类里,自然就是在进行面向对象编程了。实际上,这样的认识是不正确的。有时候,从表面上看似是面向对象编程风格的代码,从本质上看却是面向过程编程风格的。定义完类的属性之后,就顺手把这些属性的 getter、setter 方法都定义上。它违反了面向对象编程的封装特性。面向对象封装的定

2022-11-23 15:55:52 1026

原创 设计模式之美——面试对象与面向过程对比

实际上,面向过程编程和面向过程编程语言并没有严格的官方定义。理解这两个概念最好的方式是跟面向对象编程和面向对象编程语言进行对比。相较于面向对象编程以类为组织代码的基本单元,面向过程编程则是以过程(或方法)作为组织代码的基本单元。它最主要的特点就是数据和方法相分离。相较于面向对象编程语言,面向过程编程语言最大的特点就是不支持丰富的面向对象编程特性,比如继承、多态、封装。

2022-10-29 20:07:03 757

原创 设计模式之美——封装,继承,多态的意义

What:隐藏信息,保护数据访问。How:暴露有限接口和属性,需要编程语言提供访问控制的语法。Why:提高代码可维护性;降低接口复杂度,提高类的易用性。

2022-10-29 19:32:23 1463

原创 设计模式之美【总结】

尽管代码结构相似,但这 4 种设计模式的用意完全不同,也就是说要解决的问题、应用场景不同,这也是它们的主要区别。这里我就简单说一下它们之间的区别。代理、桥接、装饰器、适配器 4 种设计模式的区别代理、桥接、装饰器、适配器,这 4 种模式是比较常用的结构型设计模式。它们的代码结构非常相似。笼统来说,它们都可以称为 Wrapper 模式,也就是通过 Wrapper 类二次封装原始类。

2022-10-27 21:29:49 831 1

原创 Java方法分派

总结下来:但在Groovy中会调用方法2,纯动态语言。取决于运行时的实际类型。

2022-06-24 17:08:40 704

原创 setOnClickListener(null)父控件依然拿不到点击

需求:评价星星 在评价页支持点击选中,在其他页面点击要跳转页面。//此方法无用。isEditable = false ,点击依然无法跳转 public void setEditable(boolean isEditable) { this.isEditable = isEditable; for (int i = 0; i < getChildCount(); i++) { getChildAt(i).setOnClickListene

2022-03-18 17:23:12 1192

原创 算法学习-二分法基础

最基本的二分法查找因为我们初始化 right = nums.length - 1所以决定了我们的「搜索区间」是 [left, right]所以决定了while (left ‹= right)同时也决定了 left = mid+1 和 right = mid-1因为我们只需找到一个 target 的索引即可所以当 nums[mid] == target 时可以立即返回寻找左侧边界的二分查找:因为我们初始化 right = nums.length所以决定了我们的「搜索区间」是 [left

2022-03-12 20:46:03 198

原创 IDE刷算法插件LeetCode editor使用流程

最近报了帅张第三期21天算法训练营,上班看LeetCode不太符合摸鱼党的尿性。废话少说 直接上IDE插件–leetcode editorRestart IDE 之后配置配置路径:File->settings->tools->leetcode pluginURL可选项: leetcode.com与leetcode-cn.comCode Type: Java,Python,C++,Python3,C,C#,JavaScript,Ruby,Swift,Go ,Scala,Ko

2022-03-07 16:45:07 1803 3

原创 Binder学习笔记

三个方面回答:进程间通信机制,虚拟物理设备驱动;能发起通信的Java类;很多一线大厂的APP就是多进程在运行。推送就是一个单独进程,保持连接的稳定性。WebView退出不干净,单独进程,在退出WebView时直接杀掉该进程 就不会有内存泄漏了。Application 的onCreate 会执行多次,初始化第三方库 避免重复初始化。Linux本身是有进程间通信的,为何基于Linux的Android还要新搞出一个Binder呢?优势何在?共享内存,Socket,管道(如handler实现原.

2022-02-06 14:32:41 1662

原创 《网络协议》笔记-TCP/UDP

UDPTCP面向连接,UDP无连接,那何为连接?所谓的建立连接,是为了在客户端和服务端维护连接,而建立一定的数据结构来维护双方交互的状态,用这样的数据结构来保证所谓的面向连接的特性。TCP 提供可靠交付。通过 TCP :无差错、不丢失、不重复、并且按序到达。UDP:继承了 IP 包的特性,不保证不丢失,不保证按顺序到达。TCP 是面向字节流的。发送的时候发的是一个流,没头没尾。IP 包可不是一个流,而是一个个的 IP 包。之所以变成了流,这也是 TCP 自己的状态维护做的事情。而 UDP 继承

2022-01-04 14:45:01 949

原创 《网络协议》笔记-IP是怎么来的,又是怎么没的?

例如,旁边的机器都是 192.168.1.x,我非得配置一个 16.158.23.6,会出现什么现象呢?包发不出去,这是因为 MAC 层还没填。目标 MAC 填什么呢?是不是填 192.168.1.6 这台机器的 MAC 地址呢?当然不是。Linux 首先会判断,要去的这个地址和我是一个网段的吗,或者和我的一个网卡是同一网段的吗?只有是一个网段的,它才会发送 ARP 请求,获取 MAC 地址。如果发现不是呢?Linux 默认的逻辑是,如果这是一个跨网段的调用,它便不会直接将包发送到网络上,而是企图将包

2021-12-31 19:06:29 115

原创 《网络协议》笔记-IP地址

**IP 地址是一个网卡在网络世界的通讯地址,**相当于我们现实世界的门牌号码。既然是门牌号码,不能大家都一样,不然就会起冲突。比方说,假如大家都叫六单元 1001 号,那快递就找不到地方了。所以,有时候咱们的电脑弹出网络地址冲突,出现上不去网的情况,多半是 IP 地址冲突了。如10.100.122.2 就是一个 IP 地址。这个地址被点分隔为四个部分,每个部分一个字节( 8 个 bit),所以 IP 地址总共是 32 位。这样产生的 IP 地址的数量很快就不够用了。因为当时设计 IP 地址的时候,并不知

2021-12-31 18:05:10 297

微信QQ登录分享-AndroidStudio

适用于微信和QQ第三方登录和分享使用,包含两个jar和指导文章链接。自己代码工具类。

2018-09-25

Spring从入门到精通(高清珍藏版)

Spring 从入门到开发,全书详细介绍了Spring开发的各个技术细节,该资源是高清的pdf版本,是学习Spring不可多得教材。

2018-09-19

汉字转换拼音的jar

汉字转换拼音的jar,可用于Android或者java开发中需要汉字转换拼音的场景,pinyin4j-2.5.0.jar,带声调,可更改大小写

2017-09-05

adb的压缩包

旧版adb压缩包

2017-06-24

Android弹窗ToastDemo源码

自定义了土司 显示大小 显示时间 显示位置 透明度 圆角与否 显示内容 等

2016-05-20

Android弹窗PopuWindowDemo源码

Android弹窗PopuWindowDemo源码,直接输入提示内容字符串和显示时间就行了

2016-05-20

Scrollview中嵌套ViewPager和ListView常出现的问题

Scrollview中嵌套ViewPager和ListView常出现的问题: ViewPager如果在Scrollview中使用,并且宽高指定为match_parent或者wrap_content则不会显示内容,但是如果将高度指定为200dp,则ViewPager则会将内容显示到屏幕上 ListView同ViewPager类似,必须指定固定高度之后,才可以显示相应的高度,否则只显示一个Item的内容高度,然后在ListView区域上下滑动时,Scrollview并没有效果,而是实现的是ListView的上下滚动事件。

2016-03-30

Android:ScrollView中嵌套ViewPager和ListView示例

2016-03-30

常用布局颜色

用于常规颜色的配置

2016-03-22

空空如也

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

TA关注的人

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