自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 TabLayout预览不了?

不是TableLayout!另:TableLayout是个什么东西?当然预览不了了,这个是一个标签控件吗?而实际需要的是TabLayout。

2024-03-07 16:16:41 370

原创 Kotlin 协程四 —— Flow 和 Channel 的应用

对于那些还不支持的库,也可以将任何基于回调的 API 转换为协程。返回的是一个 ReceiveChannel,它的实现是收集上游发射的数据,然后发送到 Channel 中。这时候你可能有疑问了,这在流的内部不还是使用了基于接口的调用吗,分明没有更方便。在这个过程中,我们可以充分使用 Flow 的各种变换,对我们的中间过程进行处理。实现一些很难实现的需求。可以有多个消费者,但当向 Channel 中发射一个数据之后,收到该元素的消费者是不确定的。是一个数据流构建器,可以将基于回调的 API 转换为数据流。

2024-01-31 15:28:52 1256

原创 libflutter.so not found

/运行debug安装的时候需要对应CPU架构的'arm64-v8a'的so,不然会找不到libflutter.so。//其实CPU的架构是'arm64-v8a',加上了直接在AS的Run就可以安装到机器上。//正式打包的时候改成这个,我估计我们打包的时候这个架构其实写错了。//设置支持的SO库架构。

2023-11-30 22:42:10 239

原创 Android进阶知识:ANR的定位与解决

ANR对于Android开发者来说一定不会陌生,从刚开始学习Android时的一不注意就ANR,到后来知道主线程不能进行耗时操作注意到这点后,程序出现ANR的情况就大大减少了,甚至于消失了。那么真的是只要在主线程做耗时操作就会产生ANR吗?为什么在有时候明明觉得自己没在主线程做耗时操作也出现了ANR呢?一旦出现莫名其妙的ANR,怎么定位导致ANR的产生的位置和解决问题呢?那么接下来就来一个个的解决这些问题。光在主线程做耗时操作不会产生ANR,超时响应用户操作才会产生ANR。

2023-11-22 19:34:27 1632

原创 Java中5种List的去重方法及它们的效率对比,你用对了吗?

使用java8新特性stream实现List去重:128毫秒。使用java8新特性stream实现List去重:125毫秒。使用java8新特性stream实现List去重:201毫秒。使用java8新特性stream实现List去重:78毫秒。使用TreeSet实现List去重时间:103毫秒。使用HashSet实现List去重时间:40毫秒。使用TreeSet实现List去重时间:36毫秒。使用HashSet实现List去重时间:32毫秒。使用TreeSet实现List去重时间:40毫秒。

2023-11-07 15:40:40 1572

原创 DataBinding使用报错

首先你要知道一个概念,ActivityMainBinding是DataBinding中的一种视频绑定,通过activity_main.xml和此文件对应,即activity_main.xml会对应生成文件ActicityMainBinding.java文件,既然是视图绑定,就要看下你的配置文件是否写对了?意思是:本来系统想要的是ViewDataBinding类,你给我的是ActivityMainBinding类。

2023-10-16 00:36:16 822

原创 一种新的在 fragment 中处理按键返回的方法

当我们在fragmentActivity中重写,在此方法中获取当前的fragment对象,判断是否要处理返回事件,如果需要处理,就交由fragment再去具体响应返回事件,大致代码如下:// 具体处理事件true} else {falseif (!这种写法确实能够解决问题,并且可能是我们目前正在使用的,唯一不足就是稍显繁琐,需要开发者自行实现接口,拦截事件,写一些样板代码。

2023-10-08 21:10:44 594

原创 Android图片一直在另一张图的下边

方法一:大家可以注意下也加上这个属性,这个属性值大于上边这个图的值就能在这张图的上方了。方法二:或者不要这种属性,后添加的图片就会在上边。

2023-09-07 15:04:53 182

原创 轻松解决Mac和Windows中Unity汉化问题

本人用的是Mac,搜了一下没有找到相关的资料(可能搜索能力有限),因此,就借鉴上文的方法,自己摸索出了Mac版的汉化方法,分享出来供大家使用。本文是参考https://blog.csdn.net/ChinarCSDN/article/details/83213739该文写的。8.点击右边“Editor language”,选择“Chinese”即可。可以看到与windows的目录并不一样,按上文的方法是行不通的。本人的安装目录(默认目录)为:/应用程序/Unity。请使用手机"扫一扫"x。

2023-08-31 12:27:02 705

原创 Android投屏总结

因为国内的手机基本都是阉割版本的。AirPlay具备与DLNA所没有的镜像功能,这一功能叫AirPlay镜像,可将iPhone 或iPad 上的画面无线传输到电视上,也就是说你设备显示的是什么,电视屏幕显示就就是什么,而不仅限于图片和视频。UPnP论坛 UPnP 论坛的各个专业委员会的设备定义层,在这个论坛中,不同电器设备由不同的专业委员会定义,例如:电视委员会只负责定义网络电视设备部分,空调器委员会只负责定义网络空调设备部分,依此类推。比如,电视里显示的是游戏画面,而iPad上显示的是比赛的路线图。

2023-08-27 10:58:18 663

原创 android studio将library打包aar

android studio 打包library成aar

2023-08-18 17:28:36 146

原创 Java方法作为参数传递/调用

【代码】Java方法作为参数传递/调用。

2023-08-18 14:24:34 426

原创 将应用设置成系统App/获取Android设备SN号

1,和系统签名一致;(签名设置+签名文件)2,配置Manifest。

2023-08-10 12:28:03 979

原创 Flutter 混合架构方案探索

Flutter 混合架构方案探索

2023-08-04 09:45:53 212

原创 系统设置某些应用/页面适配横屏

如:需要把某个应用添加到横屏显示的白名单里:需要把某个应用页面横屏显示:需要把某个应用竖屏显示:需要某个应用页面竖屏显示:某个竖屏应用显示不全:

2023-07-24 11:53:11 100

原创 Android 在一个APP里打开另一个APP

不知道你们有没有注意过,每次打开一些软件的时候都会有广告引导页,有时候手滑点到了,会有进入手机上的另一个APP,这有没有引起你的注意呢?运行效果图# 正文 为了测试这个功能,首先要创建两个项目,然后运行起来都安装在你的手机上,这里为了方便了解,取名就是应用A和应用B,流程就是A应用里面打开B应用。首先当然是创建项目了创建好之后,别的先不管,都在手机上安装一下再说。

2023-07-24 11:51:57 854

原创 monkey测试shell脚本

2,主要命令源自于:adb shell monkey -p com.android.calendar --throttle 100 --pct-touch 50 --pct-motion 30 --pct-nav 10 --pct-majornav 5 --pct-appswitch 5 -v -v -v 100000 >F:20230711.txt。1,作用:你输入完整的包名,就会进行monkey暴力测试,日志会输出到~(Mac)或D:(win)

2023-07-13 15:27:49 388

原创 Design assumption violated.at androidx.viewpager2.adapter.FragmentStateAdapter.placeFragmentInViewHo

问题:viewpager2加载数据会产生预加载,导致一些数据错乱,所以选用viewpager2+lazyfragment来实现多页面滑动翻页的效果,但是会出现违反设计规定的报错:表现就是往回翻一定的页数会crash,然后报标题的错误。//这个setOffscreenPageLimit可以加大缓存量,就不容易被销毁而显示不出来了。处理:看了好多网站说这个问题的,试了下都不行。解决:最后简单解决问题!

2023-06-15 11:59:07 273

原创 windows显示计算机等图标

2023-06-02 10:52:20 95

原创 ConstraintLayout内容居左

一般情况下,如果一个控件在两个控件之间,父View是ConstraintLayout,默认就会居中。这种情况下,想靠左咋整?办法:这个想居左的控件,宽度设置为0dp就可以了;如果是内容自适应就会占满,然后内容居中。

2023-05-29 16:28:47 331

原创 Android项目构建变体不能切换打包debug模式和release模式

我的项目发现的原因:就是项目文件夹名称,和包名不同,如包名写的是com.xxx.123,但是文件夹名称是456,文件夹名称也要改成123,就能正确切换。Android项目不能切换打包debug模式和release模式,不能切换active abi类型。

2023-05-10 22:38:58 451 1

原创 Android屏幕适配dp、px两套解决办法

如上图,根据你的需要,生成需要适配的尺寸的文件,手机会根据屏幕相关参数自动寻找合适的尺寸文件的。需要执行生成适配文件夹时,找到screenMatchPX.bat文件所在的硬盘位置,双击执行该文件即可,即可在项目的res目录下生成对应的values-aaaxbbb文件夹和里面的文件数据。你想要的dp值,在values中的dimens.xml中添加就行!搞定,会用这个bat批处理,生成对应的尺寸文件,在代码里面设置按钮的宽度为@dimens_x/x720 ,则在任何手机上都会是横向全屏的。待适配w,待适配h;

2023-04-18 17:14:06 1253

原创 Android studio 按ctrl+v变成insert的解决办法

File — Settings — Editor — General — Apperance 取消Use block caret。解决办法:Tools-->Vim Emulator 取消勾选 实测可用。Mac版 android studio 竖线的光标突然变成了矩形。Mac版 android studio竖线的光标突然变成了矩形。有由于安装了一个vim插件,导致 按ctrl+v变成。

2023-03-27 11:51:09 190

原创 深入理解Activity的生命周期

之前学习安卓的时候只是知道生命周期是什么,有哪几个,但具体的详细的东西却不知道,后来看过《Android开发艺术探索》和大量博客之后,才觉得自己真正有点理解生命周期,本文是我对生命周期的认识的总结。废话少说先上图。相信学习安卓的人对这幅图都很熟悉,这是安卓Activity的生命周期活动图,详细而直观得表现了Activity各生命周期间的关系。下面我来通过问答的方式来谈谈我对它们的认识。

2023-03-10 11:26:40 562

原创 Android与flutter混合开发

这里我使用的android studio版本是2020.3.1;flutter版本2.5.3。此前在网上搜索的很多教教程版本都不一样,新版的IDE和SDK让我遇到了很多坑故这里整理一下。

2023-02-27 13:11:36 763

原创 ssh远程登录报错:kex_exchange_identification: Connection closed by remote host

果然顺利解决了问题,但这个known_hosts是个啥引起了我的注意,于是去查了一下,这里连同ssh登录一并写下。此时意味着本地机已经接受了远程主机,并且会将此公钥保存在/.ssh/known_hosts中,以便之后的验证。找到known_hosts文件,将其清空,然后重新通过终端访问服务器主机。3、远程主机用自己的私钥解密登录密码,如果密码正确,则同意登录。1、远程主机收到本地机的登录请求后会将自己的公钥发给本地机;2、本地机使用这个公钥将密码加密后,发送回远程主机;

2023-02-24 10:15:57 9583

原创 解决问题:resource IDS cannot be used in a switch statement in Android library

因为switch里的case值必须是常数,而在library module的R文件里ID的值不是final类型的,但是主module的R文件里的ID值是final类型的,所以主module里可以用资源ID作为case值而library module却不能。因为switch里的case值必须是常数,而在library module的R文件里ID的值不是final类型的,但是主module的R文件里的ID值是final类型的。Android library module中switch语句遇到的坑,你跌了吗?

2023-02-21 17:20:02 670

原创 Android项目如何将同一套代码应用于多个项目(变种打包)

测试姐姐提出项目A有一个bug,完了我改了这个项目的bug,那其他项目改不改呢,答案还是得改,浪费青春从现在开始,,,,,你得把复制出来的项目一一手动改掉,然后再一一重新上架。如果你的公司开发了一个项目,但是这个项目应用于不同的客户,根据客户的不同要求,会改动一些东西,之前我们的做法是直接将这套代码复制出来,替换logo,applicationId,以及一些基本配置(如baseurl,等配置),简单是不是,换换图片一个app就开发完了,然而问题还在后面,当一切配置好后,我们开始选择运行如图选择运行的项目。

2023-02-21 10:19:59 755

原创 AndroidStudio无法创建flutter项目

特别注意的是:选中下边的flutter!而非选择上边的Empty Project ,这种empty会默认创建Java,kotlin,go,等语言的项目,而非flutter。可根据需要选择所需要编译的平台,iOS,Android等,flutter可以支持多平台。创建flutter项目需要 flutter 和 dart 插件,当然你本机也需要下载安装flutter 环境,和dart-sdk来开发。如此两步就能创建flutter工程了。

2023-02-13 11:10:13 1187 2

原创 找不到或无法加载主类 com.xxx.xxx.XXXKt原因

在Android 项目中,如果想随便弄一个main函数作为程序的运行入口,Java 的main()是不行的,因为Android程序中,只有Application才能成为程序的入口。如果在这种情况下,你运行fun main(){ },找不到编译后的Kt类,就很可能是你没有把kotlin的依赖引入到本工程中,导致不能在本项目中编译kotlin代码。原因: java.lang.ClassNotFoundException: com.xxx.xxx.XxxxKt。

2023-01-17 19:55:43 1347

原创 Thread.join() 的使用

在代码清单所示的例子中,创建了10个线程,编号0~9,每个线程调用前一个线程的 join()方法,也就是线程0结束了,线程1才能从join()方法中返回,而线程0需要等待main线程结束。从上述输出可以看到,每个线程终止的前提是前驱线程的终止,每个线程等待前驱线程 终止后,才从join()方法返回,这里涉及了等待/通知机制(等待前驱线程结束,接收前驱线程结 束通知)。如果一个线程A执行了thread.join()语句,其含义是:当前线程A等待thread线程终止之后才 从thread.join()返回。

2023-01-17 17:24:25 320

原创 java中获取线程返回值的几种方式

在之前的工作中,主要是写业务代码,线程使用得很少,也没有考虑执行线程后如何获取返回值的问题,而线程中的run()方法是没有返回值的。那如果在线程执行完毕后想要获取对应的值要怎么做?借着最近的学习总结一下。线程返回值主要有几种方式。下面通过demo做一下演示以上代码因为MyThreadReturn线程需要5秒执行完毕,主线程中并不能顺利获取到returnValue将代码做如下修改。

2023-01-17 17:17:42 3412

原创 JAVA中创建线程的三种方法及比较

在仅仅只重写run()方法,而不重写Thread类其他方法的前提下,比较。

2023-01-17 16:58:25 972

原创 JAVA中创建线程池的五种方法及比较

ThreadPoolExecutor类提供了4种构造方法,可根据需要来自定义一个线程池。

2023-01-17 16:52:58 1411

原创 Android DataBinding学习(二):数据更新(Kotlin版本)

数据更新可以继承BaseObservable或者使用ObservableXXX类,实现双向绑定,则需要在UI界面使用@={progressData.progress}来绑定双向绑定。

2023-01-15 20:21:43 814

原创 React 里面的 App.js vs index.js

很明显, App是一个component。APP 是DOM Tree最顶端的component, 它是一个html 文件。App.js 里面的App function 返回这个html component(文件),可以用 《App /》来表示, App.js 本身并没有render功能。想要render这个component,我们要在index.js 里面把这个component render 出来。就把app当作普通的component 就可以了。

2023-01-03 15:04:12 552

原创 Android运行项目时提示:No signature of method: build_*.android() is applicable for argument types

发现:1,高版本的application写法不同;2,android { ...... } 中声明编译SDK版本的参数也不同。所以照上图中修正,就可以正常运行了。我发生这种情况是因为:1Android Studio的版本较高(2021.3.1P1),2编译版本较高30,所以提示 build.gradle的android插件有问题。报错意思:没有方法的签名:build_*.文件中 android() 适用于参数类型。

2022-12-26 15:47:09 8323

原创 java集合中List,Set,Map的特点以及在工作中如何选型

提到java的数据结构我们首先想到的肯定是集合,什么map啦,list啦,set啦。下面我们就来说一说这些集合的特点以及特性。

2022-12-18 15:25:53 338

原创 Kotlin Error: Null can not be a value of a non-null type String

kotlin可空的值,怎么初始化

2022-12-08 16:25:36 464

原创 彻底弄懂StringBuffer与StringBuilder的区别

彻底弄懂StringBuffer与StringBuilder的区别2、其append方法都是 super.append(str),调用了父类AbstractStringBuilder的append(String str)方法3、初始容量都是16和扩容机制都是"旧容量*2+2"4、底层都是用char[]字符数组实现,且字符数组都是可变的,这点不同于String4、由于StringBuilder没有考虑同步,在单线程情况下,StringBuilder的性能要

2022-12-07 18:04:29 3377 1

Julia中文文档.pdf

Julia 中文社区 May 29, 2020 由于 Julia 的编译器和其它语言比如 Python 或 R 的解释器有所不同,一开始您可能会觉得用 Julia 编写 高性能的代码并不是一件容易的事。如果您发现您的某部分代码有些慢,我们非常建议您在尝试其 它功能前读一下提高性能的窍门 。在理解了 Julia 的运作方式后,写出和 C 一样快的代码对您而言就 是小菜一碟。

2020-09-02

空空如也

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

TA关注的人

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