自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 共享打印机无法打印问题解决

常见办公问题记录

2022-10-11 14:24:30 8885 1

原创 剑指 Offer 02 - 10代码题解

这里写目录标题(1)剑指 Offer 02. 实现Singleton模式(2)剑指 Offer 03题一. 数组中重复的数字法一:把数组排序,再遍历即可法二:哈希表实现,使用HashSet和add方法,时间空间复杂度均为O(n)法三:优化法二空间复杂度到O(1),略(2)剑指 Offer 03题二. 不修改数组找出重复的数字法一:同上HashSet或者辅助数组实现,时间空间复杂度均为O(n)法二:基于二分查找思想实现,时间复杂度O(nlogn),空间复杂度O(1)(3)剑指 Offer 04.(4)剑指 O

2022-01-30 16:27:06 1139

原创 剑指offer新年刷题(JAVA) 持续完善更新

一、序言今天(1月30日)开始春节放假了,一共八天假期,翻出了压箱的《剑指offer》带回了老家过年。一共68题,计划新年每天刷十题,尽量克服走亲戚和个人娱乐等干扰因素,假期结束前争取刷完吧。先写个开头,后续每天持续完善和记录刷题过程和个人题解,贵在坚持。刷的题目自己写的代码实现放在本文最下面的表格中,后续附上自己写的Java题解对应的链接。二、每日学习日志记录(记录刷题过程及思路等)(1)1月30日日记面试题1:赋值运算符函数,C++相关的,略。面试题2:实现Singleton模式,就是手

2022-01-30 00:48:31 950

原创 后续学习计划(持续完善)

根据最近发现的不足,列出后续一个月的学习计划(1)看完MVVM,共46集视频教程,总结复习,整理知识点(2)Kotlin开始学习(3)rxjava使用(4)okhttp源码及使用(5)glide源码(6)eventBus源码(7)sqlite一些掌握的内容再细看(8)View相关(9)(10)(11)(12)(13)剑指offer每日刷两题课程学习,提高业务能力...

2022-01-27 16:16:17 2125

原创 Android Studio中导出数据库文件的方法总结

在AS中:连接上ADB,然后点击上图AS中的Device File Explorer选择自己项目的数据文件拷贝路径然后adb rootadb remountadb pull 路径 本地目录就成功拷贝数据文件到指定的本地目录,然后用SQLite打开即可。...

2021-12-22 22:31:45 3611

原创 点击应用启动时白屏问题(冷启动白屏问题总结)

开发项目过程中测试报了一个BUG:深色模式下,进入应用界面过程中会闪浅色背景一次,也就是闪白问题。相关知识可以参考:Android应用启动白屏问题解决办法谷歌设计App启动的时候有一个预览的界面,在应用完成启动初始化之前都会显示这个预览界面,目的是为了让用户点击APP图标的时候有一个瞬间响应的交互体验。一开始的解决方法是:在Application的theme主题里加了一个:<item name="android:windowIsTranslucent">true</item&gt

2021-12-22 22:16:21 1950

原创 ViewPager项目使用小节(待完善)

项目中使用语音控制指令,实现ViewPager跳转界面。方法如下:mViewPager.setCurrentItem(position);对条目进行点击监听的时候把对应的下标传到新的Activity或者fragment(intent,BroadcastReceiver,EventBus都可以传)注意:setCurrentItem()方法要设置在设置设配器之后,否则无效果...

2021-12-08 19:27:38 184

原创 Android中设置控件透明度的方法

这里写目录标题一、Java中setAlpha设置二、在shape里面,背景的透明度与颜色都在solid关键字里面。三、透明度数值表二级目录三级目录一、Java中setAlpha设置View v = findViewById(R.id.content);v.getBackground().setAlpha(100);说明: 0~255透明度值,0表示完全透明,255表示完全不透明。具体见下面的透明度数值表 二、在shape里面,背景的透明度与颜色都在solid关键字里面。如下图,1A即透明度1

2021-12-02 13:06:40 5935

原创 git提交项目至Gerrit的常用的几条指令

首次提交:git statusgit add .git commit -m “XXX”git push origin HEAD:refs/for/master提交完成,待入库代码还没入,再次提交:git add XXX(新增的更改)git commit --amend:wqgit push origin HEAD:refs/for/master提交完成,待入库...

2021-11-08 15:13:18 534

原创 使用MediaPlayer播放USB中读取到的MP3音乐文件,遇到java.io.FileNotFoundException异常总结

项目背景:多媒体USB音乐,底层调用MediaPlayer来播放U盘中读取的歌曲,由于最初版本将一首MP3歌曲甜蜜蜜写到了AS的raw目录,直接本地播放,做了一首假数据:即: //临时代码,写死歌曲甜蜜蜜,点击后会播放甜蜜蜜// mMediaPlayer.setDataSource(AudioHelper.getContext(),// Uri.parse("android.resource://"+AudioHel

2021-11-05 19:58:28 2077

原创 Android应用双开供系统在主副屏展示使用总结及问题总结

项目中用到了双屏,需要我们做跳转处理。总结了一下:Demo代码总结与问题总结一、新建三个module二、library modles(即app包)中Gradle Scripts中把原本的application改成library。三、在新建的modules(leftapp和rightapp中实现跳转app主界面的逻辑),以leftapp为例。遇到的问题:无法获取到跳转的主界面类四、出现的问题:**Resource IDs cannot be used in a switch statement in An

2021-09-13 11:11:39 1198

原创 Activity工具类

项目中有一个需求,当接收到语音的关闭应用广播时,需要关闭我们的应用。即受到广播后遍历所有当前打开的Activity,将它们都杀掉。解决思路就是每个Activity的oncreate方法中将该Activity加入一个栈,onDestroy方法中将该Activity移出栈,当最后受到关闭应用广播时遍历栈,将栈中的每一个Activity杀掉。对于上面的操作,整理了一个Activity相关的工具类,以后可以直接COPY使用:import android.app.Activity;import java

2021-07-01 15:15:39 407

原创 SharedPreference工具类代码

项目中用到了SharedPreference,封装了一个工具类,直接贴代码:public class SPUtils { /** * 保存在手机里的SP文件名 */ public static final String FILE_NAME = "my_sp"; /** * 保存数据 */ public static void put(Context context, String key, Object obj) {

2021-06-29 16:47:46 163

原创 Android获取Wifi信号强度方法总结

直接封装了一个工具类,获取WIFI信号强度直接调用该工具类的getCurrentNetworkRssi方法即可。public class WifiUtils { // 获取当前热点最新的信号强度 public static String getCurrentNetworkRssi(Context mContext) { WifiManager wifiManager = (WifiManager) mContext.getSystemService(Context.WIFI

2021-06-17 17:21:19 6171 2

原创 EventBus基本使用学习笔记(附demo)

一、EventBus简介:EventBus是一个Android事件发布/订阅框架,通过解耦发布者和订阅者简化Android事件传递,这里的事件可以理解为消息。事件传递既可以用于Android四大组件间通讯,也可以用于异步线程和主线程间通讯等。传统的事件传递方式包括:Handler、BroadcastReceiver、Interface回调,相比之下EventBus的有点是代码简洁,使用简单,并将事件发布和订阅充分解耦。二、概念:(1)事件Event:又可称为消息,其实就是一个对象,可以是网络请

2021-05-24 17:16:05 2346 1

原创 AS远程连接调试设备

(1)项目本地PC和机子都连接同一个热点(2)查找机子的IP地址(3)adb connect 192.168.XXX.XXX

2021-05-17 13:10:22 499

原创 总结项目中设计的几种弹窗(目录)

本文总结了以往项目中设计的几种弹窗使用,作为目录篇。弹窗使用一、51项目(1)AlertDialogFragment(2)RadioButtonDialogFragment(3)PickerDialogFrgament二、fc项目音乐模块一、51项目在此项目中根据需求设计了三种不同的弹窗,总结如下:(1)AlertDialogFragmentAlertDialogFragment使用总结(2)RadioButtonDialogFragmentRadioButtonDialogFragment(

2021-03-07 21:04:34 155

原创 PickerDialogFragment(使用了GitHub上一个第三方WheelView滚动选项条)

PickerDialogFragment一、需求UI图二、代码设计步骤三、源码这边引入了GitHub上的第三方控件。除了第五步的点击事件源码需要根据实际情况再进行修改,其余的代码均已调通,在后面的项目中可直接复用。一、需求UI图以前的UI图找不到了,直接手绘了一个UI图如下。可知这个弹窗中,包含一个标题TextView,一个关闭按钮ImageView,两个Button表示确定和取消,中间还需要一个可以拖动的选项条,这边使用了GitHub上一个第三方WheelView。第三方WheelView的使

2021-03-07 21:03:33 319

原创 RadioButtonDialogFragment(包含RecyclerView)使用总结

RadioButtonDialogFragment一、需求UI图二、代码设计步骤三、源码注:使用到了RecyclerView,声明了其对应的list_item.xml和对应的适配器。使用到了枚举类作为数据。除了最后一部分的点击事件的代码需要根据实际需求再进行修改,其余部分的代码都已调通,可直接复用。一、需求UI图直接拍了下自己手绘的UI需求图,如下所示。包含一个关闭的按钮,RecyclerView点击选择项,选择项中被选中项显示出一个表示被选中的图片,其余未选的项中该图片隐藏。二、代码设计步

2021-03-07 20:09:12 255

原创 AlertDialogFragment使用总结

AlertDialogFragment一、需求UI图二、代码设计步骤三、源码一、需求UI图画了下大致的效果图如下图所示,只是一个简单的提醒弹窗,包含一个TextView和两个可点击的Button按钮,用于取消或确认。二、代码设计步骤该弹窗的设计及使用分为五个步骤:(1)一个drawable:dialog_background.xml设计,作为(2)中使用的背景,包含:shapecorners:radiussolid:color等属性设置。(2)一个layout.xml:alert_

2021-03-07 18:45:16 2529 2

原创 android设置横竖屏的属性

这里写目录标题方法一:在AndroidManifest中找到Activity对应的screenOrientation属性方法二:在java代码中设置方法一:在AndroidManifest中找到Activity对应的screenOrientation属性android:screenOrientation="landscape"screenOrientation有下面几个參数:"unspecified":默认值由系统来推断显示方向.判定的策略是和设备相关的,所以不同的设备会有不同的显示方向."l

2021-02-26 16:45:29 1169

原创 使用Gerrit时SSH Key生成问题、No cached version of..问题、阿里云镜像无法下载问题总结合集

记录一下最近参与新项目时一些常规的开发流程或者一些遇到的问题。一、开通了新的Gerrit账号(1)获得账号密码:登录。(2)用户设置点击右上角当前用户,找到setting属性设置SSH Keys(这个比较重要,遇到了问题)如何生成SSH Key如下面两图,1—>2(复制自己的SSH Key到此处)–>3(add)–>成功后即可看到4这边获取SSH Keys时遇到了问题。问题一:ssh文件下没看到pub文件(验证确实如此)可能是电脑没有开启 显示已知文件扩展名。

2021-02-25 19:18:27 592

原创 MF工具类Constants源码

MF项目中很多调用的常量定义在了Constants工具类中,下面直接放上Constants源码(其中有些常量虽然定义了,但是在项目中并未使用)package com.maxus.mifa.vehiclesetting.util;/** * @author luhaojie * @date 2020/10/19 */public class Constants { public static final int INDEX_UNKNOWN = -1; public static

2021-01-27 15:13:45 168

原创 2020MF项目使用的知识点总结(个人项目笔记目录)

MF项目知识点目录前言项目描述项目需求描述项目具体使用的知识点一、架构二、页面具体的项目设计过程前言本文梳理了我做的一个项目使用到的各种知识点,将Android开发过程中一些零碎的知识串了起来,进行一下系统的总结。本文仅供个人总结复习使用,也方便以后的开发过程中遇到相似问题时能更为便捷的解决问题。毕竟一些知识点不使用就会慢慢忘记,好记性不如烂笔头。项目描述本项目为我们公司近期的一个项目(简称为MF项目,下同),具体为车载APP车辆设置模块,我负责了这个模块的UE、UI代码开发以及后续根据供应商提供

2021-01-27 11:26:44 302

原创 MF项目具体实现过程及源码分析(总目录)

待完善

2021-01-25 20:51:59 352 2

原创 Android Studio 4.0升级异常问题的解决方案

1. dataBinding开启配置修改升级到AS 4.0以后,出现如下的预警DSL element 'android.dataBinding.enabled' is obsolete and has been replaced with 'android.buildFeatures.dataBinding'解决方法:将原有的DataBinding开启方式dataBinding { enabled = true }替换成buildFeatures{dataBinding = true

2021-01-20 09:56:38 377

原创 Java中常见的对象类型简述(DO、BO、DTO、VO、AO、PO等)

题记一、概念及理解1.PO(Persistant Object) 持久对象2.BO(Business Object) 业务对象3.VO(Value Object) 表现对象4.DTO(Data Transfer Object) 数据传输对象5.DAO(Data access object) 数据访问对象6.POJO(Plain ordinary java object) 简单java对象二、例子在阿里巴巴JAVA开发手册学习过程中发现手册多处提到DO、BO、DTO、VO、PO等概念,于是就此在网上找了相关

2020-12-24 14:23:15 1551

原创 Java实体类——entity类的使用与学习

Java实体类(entity)一、前言(项目代码引申)二、实体类的众多理解三、实体类的作用四、实体类的书写规范五、序列化的必要性一、前言(项目代码引申)在一个开发的android项目中,使用到了Entity类其中SecurityDomain是一个架构模板可忽略,其余四个Entity类是根据实际功能需求扩写的,项目中这四个实体类在(1)对应的Fragment类(2)Repository(3)VehicleViewModel中使用。这四个Entity类中包含构造方法,对应开关(Switch)的功能写了

2020-12-15 14:03:04 23751

原创 getWindow().getDecorView().setSystemUiVisibility(...)设置状态栏属性

这里写目录标题一、前言二、查阅相关资料学习总结一、前言在之前写过的文章中,有写过状态栏设置相关的博客。在本次项目中,又遇到了getWindow().getDecorView().setSystemUiVisibility设置状态栏属性的情况。代码为在一个BaseActivity的onResume方法中调用一个自定义的fullscreen()方法,而这个fullscreen()方法具体实现就是设置状态栏的属性。BaseActivity中onResume方法: @Override pr

2020-12-14 16:57:25 3695

原创 Java泛型

[@TOC]如下所示,列举几个自己在项目中定义的类,他们都是泛型类public abstract class BaseActivity<D extends ViewDataBinding, V extends BaseViewModel> extends FragmentActivity {}public abstract class BaseCallback<V extends BaseViewModel> {}public abstract class BaseFrag

2020-12-14 16:09:39 141

原创 CSDN文章添加目录方法

文章目录1.点击帮助2.点击目录3.点击复制4.粘贴到文章开头5.修改目录标题内容6.注意事项:1.点击帮助2.点击目录3.点击复制4.粘贴到文章开头5.修改目录标题内容6.注意事项:有几个 # 就代表是几级目录。本文中使用了6个一级目录。注意 # 与目录文字间要有一个空格,否则目录不显示。...

2020-12-14 14:50:07 748

原创 Mvvm模式: Databinding 与 ViewModel+LiveData+Repository

参考:Mvvm模式: Databinding 与 ViewModel+LiveData+Repository

2020-11-25 15:45:50 373

原创 Android 四大组件之 Service

学习参考:Android 四大组件之 Service

2020-11-23 10:48:42 88

原创 Android开发之Log的使用

Log(android.util.log)是Android Studio中的日志工具类熟练使用log会对你以后的Android开发之旅有很大的帮助。log类有五个方法,分别是(级别由低到高):1.Log.v():打印一些最为繁琐、意义不大的日志信息2.Log.d():打印一些调试信息(logd+tab)3.Log.i():打印一些比较重要的数据,可帮助你分析用户行为数据(logi+tab)4.Log.w():打印一些警告信息,提示程序该处可能存在的风险(logw+tab)5.Log.e():打

2020-11-17 20:29:55 2774

原创 Android常用快捷键整理(待完善)

(1) Ctrl+shift+O=import包

2020-11-17 20:13:13 148

原创 项目导入gradle版本不一致问题解决小结

同事在对项目框架完成开发后,将框架的代码打包发了过来,但在我的AS上直接打开后,出现了gradle版本不一致无法运行的问题。总结一下解决方法:这边只需要对Android目录下的Gradle Scripts目录下的两个文件进行修改,问题即可解决(如下图所示)一、build.gradle(Project:XXX)将该文件中dependencies里的gradle版本号修改为本地能运行的版本号即可(如下图)二、gradle-wrapper.properties同样,将该文件的distributionU

2020-10-27 10:48:49 2425

原创 Android项目迁移到AndroidX总结

项目规定统一使用AndroidX而我一开始创建的项目中并未使用,后来查阅发现有可以直接将Android项目迁移到AndroidX的方法,故而进行一下方法总结。一、迁移前提(1)compileSdkVersion改为28(因为AnroidX 1.0.0版本是与Support Library 28.0.0一致的二进制文件,support最新的是28,所以可以直接迁移)(2)buildToolsVersion改为28.0.2以上(笔者使用的是 28.0.3 ,仅供参考)(3)gradle插件版本4.6及

2020-09-20 23:01:35 245

原创 Upgrade项目开发总结(持续更新)

最近又开始了一个新的项目开发,OTA/USB升级相关,依旧采用MVVM架构。为了后期能更好更方便的总结项目经验,决定在这次项目的开发过程中全程保持相关记录,及时总结各种经验和遇到的问题。一、在Android Studio中new这个项目。出现的问题:使用Android Studio进行编译的时候都会进行联网获取gralde的zip包和相关的依赖包。因为我们的办公环境是不能联网的,所以需要修改自己项目里的配置文件信息。具体操作参考我的另一篇博文:使用nexus仓库进行gradle离线编译二、根据

2020-09-16 10:31:00 433

原创 使用nexus仓库进行gradle离线编译

使用Android Studio进行编译的时候都会进行联网获取gralde的zip包和相关的依赖包。因为我们办公环境中的虚拟机是不能联网的,所以需要修改自己项目里的配置文件信息。需要修改两个文件。文件一修改的方式如下:第一个文件把项目路径:\项目\build.gradle文件修改成如下格式:(1)把两处google()和jcenter()删除并换成nexus库的url:maven{ url ‘http://172.31.20.194:8081/repository/TS_group/’ }(2)

2020-09-16 10:16:34 648

原创 几个Gerrit代码检查checkstyle问题总结

总结几个代码上传后报出的问题,主要是代码规范相关的,后续持续更新。1.Gerrit报错:> warning:Using the ;.*;form of import should be avoided -org.junit.Assert.*解决方法:这边是一个ExampleInstumentedTest.java文件import包的时候使用了.的形式,把这个改成具体的方法即可。Gerrit报错:warning:First sentence of javadoc is incompl

2020-09-08 15:16:33 1359

空空如也

空空如也

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

TA关注的人

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