
java
文章平均质量分 55
kuanxu
这个作者很懒,什么都没留下…
展开
-
解决android4.4以下sslv3 alert handshake failure和protocol TLSv1.3 is not supported的问题
解决android4.4以下sslv3 alert handshake failure和protocol TLSv1.3 is not supported的问题原创 2023-05-18 17:54:49 · 1940 阅读 · 0 评论 -
Flutter 强制获取焦点的问题
在用flutter框架实现Flutter TV app的过程中,光标切换是个大问题: 从主菜单到子菜单,从子菜单到目标选项,各个目标选项之间,都需要光标切换。而且在Tv上无法触摸,主要靠遥控器上的上、下、左、右键来实现。所以光标的各个方向移动有时候需要以下方法指定才能实现。FocusScope.of(context).requestFocus(expectFocus); 但是这个方法有时候并不能得到想要的效果,譬如从menu1按右键光标正常会跳到menu2,但事实上却...原创 2021-12-21 15:11:35 · 2992 阅读 · 0 评论 -
混淆编译造成 java.lang.UnsatisfiedLinkError: JNI_ERR returned from JNI_OnLoad in “/data/app-lib/xx/xx.so”
android app运行的时候偶尔会遇到加载so文件的问题,譬如java.lang.UnsatisfiedLinkError: JNI_ERR returned from JNI_OnLoad in "/data/app-lib/xxx/xxx.so"今天遇到这种问题时,我按照网上的资料进行如下检查:检查对应编译目录lib下有没有对应so文件; 检查对应module下的 build.gradle 没有如下条件 sourceSets { main { jniLibs.原创 2021-11-26 12:04:04 · 4019 阅读 · 0 评论 -
Flutter String 的 isEmpty 使用
Flutter 里的String isEmpty 只是判断string是否为空,而不能判断string是否null,所以判断是否为空的前提,要判断str != null;不然,一旦字符串为空为null,调用isEmpty时就会出现以下exception,[ERROR:flutter/lib/ui/ui_dart_state.cc(186)] Unhandled Exception: NoSuchMethodError: The getter 'isEmpty' was called on null.原创 2021-11-24 17:25:02 · 3046 阅读 · 0 评论 -
No toolchains found in the NDK toolchains folder for ABI with prefix: arm-linux-androideabi
前段时间由于要进行ndk编译,把AS里的 NDK 版本降了,同时在Default ProjectStucture里面设置了新的ndk路径现在问题是,ndk项目里这样的配置没有问题,但是在flutter项目里,这种ndk配置会出现问题,如会有如下编译错误> No toolchains found in the NDK toolchains folder for ABI with prefix: arm-linux-androideabi因为之前没有改nd.原创 2021-11-18 16:26:47 · 1745 阅读 · 0 评论 -
Flutter源码中的特殊操作符、关键字
相对于java,dart代码里经常会遇到一些特殊的操作符号,如级联操作.., 问号相关操作符?, ??, ??=, ?. , 内联 …, …?, 还有 with, mixin…on等。这里对dart中的常用特殊操作符做一些记录一、级联符号 ..第一次遇到dart 级联符号(..)实在flutter app的入口函数中,如下:void main() => runApp(MyApp());void runApp(Widget app) { WidgetsFlutterBinding...原创 2021-11-17 17:56:13 · 3092 阅读 · 0 评论 -
armembi 中的“embi”是什么意思?
NDK 编译好几年没搞过了,最近由于项目需求重新复习了相关知识点,查查资料,编译还算顺利。其中遇到 Armembi 这个名词缩写,只知道跟动态库.so 文件有关,具体不知道为什么这样命名,所以这里重点记录一下。EABI ------------Embedded application binary interface, 顾名思义, 嵌入式应用二进制文件接口,是描述可连接目标代码,库目标代码,可执行文件影像,如何连接,执行和调试,以及目标代码生成过程,和c, c++语言接口的规范,是编译连接工具的基础原创 2021-11-05 14:17:38 · 2572 阅读 · 0 评论 -
Android Studio开发工具使用过程中遇到的问题及解决方法
自从把AS工具升级到4.0版本,并安装Flutter开发插件后,AS工具就没那么好使了。经常会出现很多莫名奇妙的问题:找不到Class定义(明明有定义),找不到导入文件,java文件显示xml内容,A文件显示成B文件内容等等。 不知道是Flutter插件的原因,还是V4.0版本的bug。总之,混乱不堪,非常影响开发效率。下面介绍一下几个主要问题的解决方法:1、文件类型显示不对,本来每个java文件前面应该显示”J”图标的却显示“C”图标解决方法; 点击右下角的小人头像将P..原创 2021-10-14 16:07:31 · 7977 阅读 · 0 评论 -
Android开发中数据变化监听的5种方式
一、Broadcast之BroadcastReciever二、SharedPreferences 之 OnSharedPreferenceChangeListener()三、ContentProvider 之 ContentObserver四、Flutter 数据监听之 EventBus五、Flutter 数据监听之 ChangeNotifier日常Android开发中总会遇到数据变化监听的需求,譬如一个数据变化需要多个页面或者activity内容同时更新。 而Android中通..原创 2021-10-09 12:25:35 · 9465 阅读 · 0 评论 -
Flutter TV App 中如何防止按键过快
在刚刚开发完成的Flutter TV app中,遇到过好多个棘手的问题,最后都迎刃而解了。正好有空就一个个总结出来。第一个问题:如何处理flutter TV 按键过快?机顶盒app开发中,内存问题首要考虑的,因为大多数的机顶盒内存较低,它们的Ram在2G以下,特别是很多内存1G, 500M的盒子。app在这种盒子上运行时动不动就闪退,着实令人头疼。由于硬件内存的限制,用遥控器切换app页面时,速度会很慢,偶尔还会发生ANR,这种情况下如果不控制遥控...原创 2021-09-29 15:34:59 · 669 阅读 · 0 评论 -
Native heap 和Dalvik heap 学习总结
最近在开发flutter app,发现flutter app的内存使用和之前android java app 有很大区别,flutter app 运行时Native heap占大头,android java app运行时, dalvik heep 占大头。于是重新学习了一遍android内存知识,大致总结如下1,进程的地址空间分为stack和heap,stack是栈,由操作系统控制, 函数地址、参数,内部变量都在栈上,栈不大,一般几MBheap是堆,由程序员控制,所以malloc, ne原创 2021-09-29 11:26:07 · 1636 阅读 · 0 评论 -
Flutter开发中遇到 “从顶部向下滑动即可退出全屏模式”
近日在用flutte/dart 调试机顶盒app时,发现个别盒子一旦启动app就会进入半透明的全屏模式——安卓沉浸模式,而且还从顶部弹出一个蓝色的提示框,如下图由于机顶盒无法触摸,顶部的弹框也一直无法获得光标,只能按back键关掉弹窗并退出半透明模式。于是尝试了很多方法,设置SYSTEM_UI_FLAG_XXX 相关参数,始终毫无效果,弹窗依然会出现。最后偶然发现根组件是Container的页面就不会弹框,而根部组件是Scaffold的就会弹出蓝色的提示框。查资料发现,对于Scarfo..原创 2021-06-11 16:02:04 · 7608 阅读 · 1 评论 -
奇怪的InputStream.read(buf)阻塞问题
近期本人在android开发中遇到大文件下载时阻塞问题. 客户端要下载一个文件,但每次下载到固定字节数就阻塞在那里,过一会儿就抛出SocketTimeoutException。譬如这个文件的大小为18M,用inputStream.read(buf)的方式从socket端读取数据,每次从0读到5M的时候就阻塞在那里。我分别使用了1,2,3 个线程去读取文件,每次都是阻塞在5M那里:1个线程时,负责读取0-18M, 读取5M时就阻塞在那里.2个线程时,第一个线程负责前9M,第二个线程负责后.原创 2020-06-17 16:17:45 · 2449 阅读 · 1 评论 -
Java中构造函数执行顺序的问题
1, 先执行内部静态对象的构造函数,如果有多个按定义的先后顺序执行;而且静态类的构造函数只会被执行一次,只在其第一个对象创建时调用,即便是创建了同一个类的多个对象,例如main()函数里b1,b2创建了同一个类的两个对象,但是grandmaMotherClass的构造函数只被执行了一次 2, 再执行父类的构造函数(c++中如果有多个,可按照左右先后顺序执行)3, 再执行内部普通对原创 2011-11-02 16:03:37 · 5532 阅读 · 1 评论 -
java 语言实现二叉树的各种操作
最近重新复习了树的各种操作,包括插入、删除、查找、按层遍历、二叉树转换成双向链表等操作。尝试用java实现,代码已上传至http://download.youkuaiyun.com/detail/kuanxu/3684419原创 2011-10-21 10:01:59 · 618 阅读 · 0 评论 -
容器的学习
1, 容器有两类,一类是Collection,另一类是Map, 主要的区别一个存储位置存放的值或对象的个数不一样。 Collection的话一个位置只能存放一个对象或值,Map的话一个位置要存放一对键和值,即键-值成对出现。2, List 和 Set, List存放特定顺序的值,但是值可以重复;Set存放不重复的值,但是其顺序是未知的或者是杂乱无章的。Collections里有sort()原创 2011-11-11 18:15:24 · 543 阅读 · 0 评论 -
Java数组的学习
1, 存储基本类型也可存储对象引用,但是所有元素必须是同一类型2, 线形结构,同时也是限长结构,使用时要做越界检查,否则越界后JVM要抛出exception;由于其是限长结构不能动态增长,所以就有了list,arraylist,vector等3, 数组只有唯一的属性length,所以初始化数组时要么指定长度length,如 Obj [] a =new Object[8]; 要么直接初始化是原创 2011-11-02 18:38:42 · 702 阅读 · 0 评论