自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

backer

每天都要进步一点点

  • 博客(235)
  • 资源 (22)
  • 收藏
  • 关注

原创 Android studio 软件安装过程中遇到的问题

我估计是在安装过程中遇到问题最多的一个人了 ....按照《第一行代码》书中内容,应该建立一个HelloWorld项目,但是刚一建立,就出现一堆红色的错误。第一个问题是“could not find any version that matchse com.android support:appcompat-v7:27.+”或者是“sync errors”Error:(26, 13) Fai

2018-01-14 17:52:04 5911 1

原创 WorkManger学习汇总

WorkManager源码

2023-11-04 21:46:55 272

原创 Dialog动画相关

最近需求一个问题,想要在dialog消失时增加动画,之前如上一个文章中遇到的,但是最后改了实现方式,要求在特定的地方缩放,原来的dialog高度是wrap_content的,这样是无法实现的,因此首先需要将dialog的layout文件从wrap_content,改成match_parent,同时设置最外层布局背景透明。紧接着我们就可以使用动画了,尤其是平移动画,原来dialog是wrap_content的时候,如何平移超过view,就会消失。思路:根据位置计算平移的距离进行平移,同时缩放。

2023-10-18 23:19:54 285

原创 日常bug汇总

1.constraintlayout + NestedScrollView 可能会导致NestedScrollView 不滑动。

2023-10-17 18:02:26 455

原创 透明度模糊Android实现

但这种实现方式有一个缺点,Fatal Exception: android.renderscript.RSInvalidStateException: Calling RS with no Context active.权衡之下,去掉这个feature了。最近有个需求,需要透明度加模糊,并且无法通过Glide的方式实现。研究后发现有一个第三方库可以实现这个效果。实现效果 可以看到上边的bar实际上是有透明度和模糊的。在activity的onCreate()方法中。

2023-09-18 22:29:08 405

原创 Seekbar细节

Seekbar 细节

2023-09-12 09:56:06 75

原创 全屏Activity弹出键盘不顶起布局

全屏Activity弹出键盘

2023-09-10 23:04:10 976

原创 Android反编译

android反编译

2022-11-09 11:19:04 376 1

原创 Android 自定义TabLayout

默认的TabLayout是没有花里胡哨的功能的,比如说我们可能希望它有边框,或者有背景颜色。因此就需要更改一些属性,或者在代码中实现。

2022-05-24 09:41:28 1753

原创 DataBinding学习记录

DataBinding的实质其实也是APT技术,DataBinding是MVVM架构中出现的。想要使用DataBinding,首先需要在在build.gradle(app)中加入以下这句话,如下图所示 dataBinding { enabled = true // versio n = 1.1 // 可选,建议最好不加,使用Gradle插件默认的版本 }然后在需要使用DataBinding的布局中通过<data>标签的方式管理布局和

2022-04-09 23:27:40 2696

原创 Some Kotlin libraries attached to this project were compiled with a newer Kotlin终极解决方法有手就会

Some Kotlin libraries attached to this project were compiled with a newer Kotlin compiler and can‘t 报错看了网上的解决方法,都不行,包括删除.gradle重新下载依旧报错记录一下,有好心人也可以告诉我答案

2022-04-09 18:47:52 5729 1

原创 Android屏幕适配

1.Android屏幕适配的原因其实还是因为dp并不能真正的实现像素密度无关2.dp dpi dip px到底是什么像素px 1px=1个像素点 设计师一般以px作为统一的计量单位屏幕像素密度 dpi dpi与屏幕尺寸有关 在同一条件下,屏幕尺寸越小,分辨率越高,像素密度越大dpi = 开根号(宽^2 + 高^2)/屏幕大小屏幕无关像素 dp/dip dp = dpi/160 也就是说dp其实是只和dpi相关的,而为了进行适配,我们需要修改的是dpi,而Android适配也是因为dp

2022-03-21 15:52:28 2383

原创 View绘制流程分析

setContentView()做了什么我们知道在onCreate()方法中setContentView()方法是将xml文件解析到DecorView上,那么DecorView又是什么时候显示在屏幕上的呢?我们都知道activity的生命周期中onResume()做了很多工作,而onResume()的调用如上图所示。在ActivityThread中,handleResumeActivity()方法不光调用了performActivity()方法最终实现对onResume()方法的调用,还进行了以

2022-02-15 10:26:24 1167

原创 setContentView()做了什么事情?

setContentView()做了什么事情

2022-02-09 23:14:06 1705 1

原创 Java双亲委派机制在Android的应用

Java的双亲委派机制三层类加载器1.启动类加载器(Bootstrap Class Loader) 这个类加载器负责加载存放在<JAVA_HOME>\lib目录,或者被-Xbootclasspath参数所指定的路径中存放的,而且是Java虚拟机能够 识别的(按照文件名识别,如rt.jar、tools.jar,名字不符合的类库即使放在lib目录中也不会被加载)类 库加载到虚拟机的内存中。启动类加载器无法被Java程序直接引用,用户在编写自定义类加载器时, 如果需要把加载请求委派给引导类加载

2022-01-25 17:04:39 1688

原创 Java 锁

1.volatilevolatile具有可见性和一致性,禁止指令重排序优化,但是无法保证原子性,因为很多操作都不是原子操作(如i++)由Java内存模型来直接保证的原子性变量操作包括read、load、assign、use、store和write这六个除了volatile之外,Java还有两个关键字能实现可见性,它们是synchronized和final。而final关键字的可见性是指:被final修饰的字段在构造器中一旦被初始化完 成,并且构造器没有把“this”的引用传递出去(this引用逃

2021-12-27 17:10:10 166

原创 sychronized理解

1..class和.dex文件对于Java而言,编译后生成的是.class文件而对于android而言,.class文件是中间状态,还需要将.class文件通过dex工具变成.dex文件,最终变成.apk文件如一个类Demo,注意一定不要将它写在xx.com.example下,而是直接写在java文件夹下(即不要导入任何包)血的教训,千万不要写入任何路径,否则会像我一样折腾半天Demo类定义如下,里面写了一个foo()的方法,且被synchronized修饰(可以对比一下有无修饰生.

2021-12-27 14:06:35 309

原创 Android进阶之光学习记录——注解与依赖注入框架ButterKnife的尝试

⚠️创建的模块是java模块而非Android Library,如果创建的是后者,则无法使用AbstractProcessor

2021-12-26 22:45:08 1404

原创 Java线程的一点理解

1.线程和进程的区别进程是资源进行分配和调度的基本单位 进程包含线程 进程有自己线程cpu调度的最小单位2.线程的生命周期一个线程被创建变成了new,在获取到除了cpu之外的资源后变成了runnable,在等待检测锁的时候是blocked,在被执行wait() sleep()以及join()等方法后变为waiting以及等待特定的时间时是timed_waiting,终结后变为terminated.理解一下blocked:当一个线程被调用了wait()/join()之类的方..

2021-12-24 16:04:20 571

原创 Activity启动过程——10.0源码分析

安卓10 activity启动流程分析

2021-12-23 17:30:59 2088

原创 HashMap原理

1.构造器hashmap有四个构造器(1) HashMap() 如下所示代码 DEFAULT_LOAD_FACTOR = 0.75f /** * Constructs an empty <tt>HashMap</tt> with the default initial capacity * (16) and the default load factor (0.75). */ public HashMap() { ...

2021-12-19 23:03:56 391

原创 Android Studio Build running 时间过长且失败Gradle

错误内容Unable to resolve dependency for ':app:Infolibrary@debugAndroidTest/compileClasspath':Could not resolve androidx.core:core-ktx:1.3.0....1.androidx build 失败implementation 'androidx.core:core-ktx:1.3.0'implementation 'androidx.appcompat:appc.

2021-05-05 17:42:48 1081 4

原创 ListPreference动态设置选项

在实际中,我们通常会遇到动态设置选项的问题,而不想在xml文件中写相关内容,可以通过一下方式实现。在找到当前的ListPreference后,绑定数据和preference private void doDataBind(ListPreference preference,List<String> list){ CharSequence mentries[] = new String[list.size()]; CharSequence ment.

2021-02-05 11:32:27 811

原创 Preference复制文本功能实现 android

如使用android定义的Preference,实现显示内容的复制,可通过点击Preference,触发onclick实现(和其它控件如按钮等点击类似,在onclick等内部调用复制函数),最后实现复制功能的函数 public void copyData(Preference preference){ ClipboardManager cm = (ClipboardManager)getActivity().getSystemService(getActivity()..

2021-02-05 10:34:18 202

原创 责任链模式学习记录

//责任链模式 为请求创建一个接收者对象的链 确保对象总是会被处理 如Android中的事件分发机制,OKHTTP中的网络处理 在以下的例子中,为了构建责任链模式,还使用到了建造者模式public class ChainOfResponsibility { //责任链模式 为请求创建一个接收者对象的链 //首先是访问频率其次是登录 public static void main(String[] args) { Request request = ne.

2020-10-09 09:31:54 103

原创 观察者模式学习记录

//观察者模式//定义了对象之间的一对多以来,让多个观察者对象舰艇某一个主题对象,党主题对象发生变化时,它的所有依赖者都会收到通知并更新//如Android中的ListView RecycleView点击事件//优点 1.符合开闭原则 2.可以在运行时就建立对象之间的关系import java.util.ArrayList;import java.util.List;public class Observe { //观察者模式 //定义了对象之间的一对多以来...

2020-10-08 16:39:46 112 2

原创 模板模式学习记录

//模板方法模式//定义一个操作的算法骨架,而将一些步骤延迟到子类中 使得子类可以不改变一个算法的结构就可重定义该算法的某些特定步骤public class Model { //模板方法模式 //定义一个操作的算法骨架,而将一些步骤延迟到子类中 使得子类可以不改变一个算法的结构就可重定义该算法的某些特定步骤 public static void main(String[] args) { AbstractClass abstractClass = n..

2020-10-08 14:53:15 105

原创 策略模式学习记录

策略模式 定义了算法族 分别封装起来 让它们之间可以互相替换 此模式的变化独立于算法的使用者public class Strategy { //策略模式 定义了算法族 分别封装起来 让它们之间可以互相替换 此模式的变化独立于算法的使用者 public static void main(String[] args) { Zombie zombie = new NormalZombie(); zombie.display(); ..

2020-10-06 17:09:51 91

原创 装饰者模式学习记录

装饰者应用场景 扩展一个类的功能或给一个类添加附加职责优点 1.不改变原有对象的情况下给一个对象扩展功能2.使用不同的组合可以实现不同的效果3.符合开闭原则 注意 在新的装饰器中要调用原来的方法 否则是不正确的public class Decorator { //装饰者应用场景 扩展一个类的功能或给一个类添加附加职责 /* 优点 1.不改变原有对象的情况下给一个对象扩展功能 2.使用不同的组合可以实现不同的效果 ..

2020-10-06 15:27:06 81

原创 享元模式学习记录

享元模式//运用共享技术有效地支持大量细粒度的对象//优点:如果系统有大量类似的对象,可以节省大量的内存及CPU资源 源码 String Integer Long 不可变对象import java.util.Map;import java.util.concurrent.ConcurrentHashMap;public class XiangYuan { public static void main(String[] args) { TreeNode no.

2020-09-22 16:43:34 87

原创 原型模式学习记录

指原型实例指定创建对象的种类,并且通过拷贝这些原型创建心的对象,最常见的就是深拷贝和浅拷贝,其中浅拷贝是只能拷贝基本类型和String类型的值和其它类型的地址,用这种方式拷贝的结果是原来的对象发生改变,当前对象也会有相应的改变。如果不希望当年的基本类型值被改变,可以通过final修饰,如代码所示。运行结果如下public class BuilderUpdate { public static void main(String[] args) throws CloneNotSupport..

2020-09-22 10:23:54 86

原创 建造者模式学习

课程地址建造者的流程如下,首先是有商品和相应的接口,接口中是各种抽象的方法,然后有builder负责实现接口中的各种方法,在由一个引导类负责实现一个商品的构建并完成和客户端的交互。public class BuilderDemo { public static void main(String[] args) { DefaultProductBuilder defaultProductBuilder = new DefaultProductBuilder();

2020-09-21 09:54:30 93

原创 单例模式详解——参考B站课程

课程地址单例模式是为了确保只有一个实例的存在,从而防止多个实例存在会对程序造成干扰或攻击。1.懒汉模式public class LazySingleTon { private static LazySingleTon singleTon; private LazySingleTon(){} public synchronized static LazySingleTon getInstance(){ if(singleTon == null)

2020-09-20 10:01:44 137

原创 HashMap学习记录

HashMap继承AbstractMap,实现克隆,序列化接口public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable { /** * The default initial capacity - MUST be a power of two. */ static final int

2020-09-18 10:15:34 77

原创 HandlerThread源码学习记录

HandlerThread 实质上是一个带有Looper的handler,我们在使用的时候通过mThread = new HandlerThread("handler_thread");需要启动handlerThread的时候mThread.start();代码很短 HandlerThread继承了Thread,也就是说可以通过HandlerThread的方式开启一个线程,当.执行start()方法后,会在新开启的线程中直接执行run()函数,其中run函数中首先通过Loppe.

2020-09-08 19:44:54 100

原创 Android消息机制总结 Handler Looper MessageQueue Message

Handler Looper MessageQueue 以及Message是一个整体。如果线程之间需要发送消息,最常见的方式就是使用Handler。如子线程想要给主线程发送消息,则主线程中创建Handler 并重写handleMessage()的方法,子线程中通过sendMessage的方法传递消息。如果主线程想要给子线程发送消息,则需要在子线程中创建Looper,(Looper.prepare() ...Looper.loop())的方式完成。主线程中自带Looper,不需要我们手动创建。一个线程

2020-09-06 16:22:50 141

原创 Object类学习记录

Object类是其它类的超类,有很多方法如wait,notify,equals,hashcode等等,其中大部分方法都是native的在equals方法中,比较的是==,而在Integer或者是String类中,重写了equals方法,比较的是内容是否相同 public boolean equals(Object obj) { return (this == obj); } public final native Class<?> getClas

2020-09-03 20:02:59 80

原创 String类 StringBuilder StringBuffer源码

String类被final修饰 实现了CharSequence的接口,有被final修饰的char型数组,因此是不可变的public final class String implements java.io.Serializable, Comparable<String>, CharSequence { /** The value is used for character storage. */ private final char value[]; .

2020-09-03 19:40:29 104

原创 Integer源码阅读记录

1.静态内部类IntegerCacheprivate static class IntegerCache { static final int low = -128; static final int high; static final Integer cache[]; static { // high value may be configured by property int h.

2020-09-03 16:50:59 95

原创 csp 201912-1 报数java

import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); int i = 0; int count = 0; int res[] = new in...

2020-09-01 11:00:17 142

串口网口助手工具压缩包

串口网口助手压缩包,如通过串口助手进行串口通信,或者通过网口助手socket通信,需发送命令

2019-07-04

com.guo.android_extend:android-extend:1.0.6

implementation 'com.guo.android_extend:android-extend:1.0.6'失败,用这个替代就好了

2018-12-13

计算机网络tcp实验java实现

计算机网络tcp实现,发包传包丢包问题,以及正确率计算

2018-10-17

讯飞语音识别android studio最简单的例子

讯飞语音官方自带demo导入android studio中经常报各种各样的错,上传的资源中往往很多都不能跑.....将资源中的id值改成自己的,把自己下载下来的libs里面的资源替换成自己就可以,或者参考我的项目结构,聪明如你肯定就可以跑出来了

2018-10-09

数据可视化经典案例数据资源

这个是hans rosling经典可视化案例-百年来世界人口数量GDP寿命数据

2018-10-08

论文学习笔记

论文学习笔记, 组推荐系统以及推荐服务,组推荐中自然噪声的管理

2018-04-08

An empirical study of natural noise management in group recommendation systems

主要提出了四种减少小组推荐中自然噪声的方法,主要思想是如果用户和项目行为一致但与评分结果不同,表面这个评分是个噪声。

2018-04-08

群体推荐主题生成模型(GIST)

一种基于个体和子群的群体推荐主题生成模型(GIST),融合个人和组典范推荐,弥补传统推荐系统的不足

2018-03-30

GroRec:集成社交,移动和大数据技术的以群体为中心的智能系统pdf学习

基于组的推荐系统,对用户情绪进行定量分析,用于改善数据的客观性,分别提出基于评分,兴趣以及社会关系的模型

2018-03-30

GroRec:集成社交,移动和大数据技术的以群体为中心的智能系统

GroRec:集成社交,移动和大数据技术的以群体为中心的智能系统,对用户情绪的定量分析,从而改善数据的客观性,基于评分,兴趣和社会关系的模型

2018-03-30

A generative model for group recommendation

一种基于个体和子群的群体推荐主题生成模型.本文提出了一种基于主题的概率模型,用于推断群体活动,并提出群体推荐。与现有的基于个体的聚合方法相比,它不仅考虑了单个成员的兴趣,而且考虑了子群的兴趣。

2018-03-22

MAV应急声源定位研究的ppt

这是论文对应的自己做的PPT,由于这篇论文偏向于机器人方向,所以看起来还是有一定难度。

2018-03-16

Localization of emergency acoustic sources by micro aerial vehicles

用微型飞行器定位应急声源,使用了三种方法,尝试解决窄声源的问题。主要用到TDOA方法

2018-03-16

基于LSTM RNN 模型预测EV事件的框架

这是一篇利用LSTM RNN 预测EV事件的论文,构建LSTM EV预测模型,并与常见的方法进行比较。

2018-03-09

使用LSTM递归神经网络架构的紧急事件预测 PPT

An architecture for emergency event prediction using LSTM recurrent neural networks 论文学习

2018-03-09

php微信二次开发

php语言 部署在新浪云上,自定义菜单,简单的数据库,用户绑定,自动回复,机器人聊天,在线点歌(数字1-7) 附近功能搜索美食加油站酒店

2017-09-13

微信公众平台开发

学习过程中,一些微信二次开发的书籍,供参考,都是使用的Php语言,很多内容有过时嫌疑,如果有些无法实现可能是因为微信的改版,一切以微信官方文档为主

2017-09-13

微信二次开发小学期

微信二次开发,自定义菜单,用户绑定,机器人聊天,在线音乐,自动回复,附近功能搜索加油站酒店美食等信息,有简单的数据库,上传至新浪云即可。仅供参考

2017-09-13

RSA加解密的JAVA实现

非对称加密算法RSA算法的JAVA实现,可视化界面,支持多种形式,供参考

2017-07-16

所有模式的AES实现

AES五种分组模式的实现,可视化界面并将明文密文解密后的结果存放于文本中

2017-07-16

AES ECB模式的JAVA实现

实现AES的ECB模式的加解密并将文件存放于txt文本中,放txt的路径可能需要进行更改,可以用exe4j将java程序改成可以执行的exe文件

2017-07-16

空空如也

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

TA关注的人

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