自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

kuanxu的专栏

顺,不妄喜;逆,不惶馁;安,不奢逸;危,不惊惧;胸有惊雷而面如平湖者可拜上将军。

  • 博客(66)
  • 资源 (5)
  • 收藏
  • 关注

原创 uniApp h5解决Chrome跨域问题的最终方法

url: ' https://www.yachen.com/api/sendinfo', //仅为示例,并非真实接口地址。跨域是浏览器的专用概念,指js代码访问自己来源站点之外的站点。比如A站点网页中的js代码,请求了B站点的数据,就是跨域。A和B要想被认为是同域,则必须有相同的协议(比如http和https就不行)、相同域名、和相同端口号(port)。,网上有很多安装示例,无奈我尝试了半天,插件也安装了,错误照旧,不知道哪里出问题了;代码里的绝对url路径改为相对路径,譬如以前有问题的代码。

2024-03-06 17:44:31 602

原创 解决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 1296

原创 Targeting S+ (version 31 and above) requires that an explicit value for android

Targeting S+, build.gradle, sdk version 设置

2022-09-28 14:52:19 5897 2

原创 Flutter 强制获取焦点的问题

在用flutter框架实现Flutter TV app的过程中,光标切换是个大问题: 从主菜单到子菜单,从子菜单到目标选项,各个目标选项之间,都需要光标切换。而且在Tv上无法触摸,主要靠遥控器上的上、下、左、右键来实现。所以光标的各个方向移动有时候需要以下方法指定才能实现。FocusScope.of(context).requestFocus(expectFocus); 但是这个方法有时候并不能得到想要的效果,譬如从menu1按右键光标正常会跳到menu2,但事实上却...

2021-12-21 15:11:35 2744

原创 混淆编译造成 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 3127

原创 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 2772

原创 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 1598

原创 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 2907

原创 armembi 中的“embi”是什么意思?

NDK 编译好几年没搞过了,最近由于项目需求重新复习了相关知识点,查查资料,编译还算顺利。其中遇到 Armembi 这个名词缩写,只知道跟动态库.so 文件有关,具体不知道为什么这样命名,所以这里重点记录一下。EABI ------------Embedded application binary interface, 顾名思义, 嵌入式应用二进制文件接口,是描述可连接目标代码,库目标代码,可执行文件影像,如何连接,执行和调试,以及目标代码生成过程,和c, c++语言接口的规范,是编译连接工具的基础

2021-11-05 14:17:38 2317

原创 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 7833

原创 Android开发中数据变化监听的5种方式

一、Broadcast之BroadcastReciever二、SharedPreferences 之 OnSharedPreferenceChangeListener()三、ContentProvider 之 ContentObserver四、Flutter 数据监听之 EventBus五、Flutter 数据监听之 ChangeNotifier日常Android开发中总会遇到数据变化监听的需求,譬如一个数据变化需要多个页面或者activity内容同时更新。 而Android中通..

2021-10-09 12:25:35 8359

原创 Flutter TV App 中如何防止按键过快

在刚刚开发完成的Flutter TV app中,遇到过好多个棘手的问题,最后都迎刃而解了。正好有空就一个个总结出来。第一个问题:如何处理flutter TV 按键过快?机顶盒app开发中,内存问题首要考虑的,因为大多数的机顶盒内存较低,它们的Ram在2G以下,特别是很多内存1G, 500M的盒子。app在这种盒子上运行时动不动就闪退,着实令人头疼。由于硬件内存的限制,用遥控器切换app页面时,速度会很慢,偶尔还会发生ANR,这种情况下如果不控制遥控...

2021-09-29 15:34:59 568

原创 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 1292

原创 Flutter开发中遇到 “从顶部向下滑动即可退出全屏模式”

近日在用flutte/dart 调试机顶盒app时,发现个别盒子一旦启动app就会进入半透明的全屏模式——安卓沉浸模式,而且还从顶部弹出一个蓝色的提示框,如下图由于机顶盒无法触摸,顶部的弹框也一直无法获得光标,只能按back键关掉弹窗并退出半透明模式。于是尝试了很多方法,设置SYSTEM_UI_FLAG_XXX 相关参数,始终毫无效果,弹窗依然会出现。最后偶然发现根组件是Container的页面就不会弹框,而根部组件是Scaffold的就会弹出蓝色的提示框。查资料发现,对于Scarfo..

2021-06-11 16:02:04 7011 1

原创 Flutter异常Another exception was thrown: Instance of ‘DiagnosticsProperty<void>‘

问题背景:今天尝试在flutter “Column” 控件里添加“ListView”控件时,编辑编译时均正常,但是运行时出现如题异常。问题解决:将ListView 移出“Column”子控件列表,用父“Stack”控件固定坐标方法,将ListView固定显示在屏幕某个位置。总结:1,暂时不清楚为什么ListView和GridView不能嵌入到Column里。2,不能把Column 和Row单纯看作原android Layout里的“LinearLayout”的替代控件, 它们的子widgets里

2020-11-04 16:19:50 3773

原创 通常所说的android apk 运行内存指的是哪个XSS

关于apk内存使用情况的adb 命令有如下两个:> adb shell procrank> adb shell dumpsys meminfo apkPackageName前者运行后列出所有进程的内存使用情况,每一项都包含VSS,RSS,PSS,USS具体这几个英文缩写的意义如下:VSS- Virtual Set Size 虚拟耗用内存(包含共享库占用的内存) RSS- Resident Set Size 实际使用物理内存(包含共享库占用的内存) PSS- P..

2020-09-23 12:10:25 272

原创 RemoteViews can only be used once ,if not ,it may cause ANR in hosts such as Laucher

这两天研究flutter downloader (插件flutter_downloader: ^1.5.0)时遇到上面一个错误。 我需要在download callback fuction中获取下载进度并显示首先在initState()中实现了pr = new ProgressDialog(context, type: ProgressDialogType.Download);这是一个用来显示下载进度的RemoteView,然后再flutter download cal...

2020-09-10 10:55:36 213

原创 Android 与 Flutter 简单对比

特性 Android Flutter UI视图 View,视图更新只需要修改View的内容来更新部分内容, 视图页面Activity, Fragment Widget,视图更新需要通过setState()重建整个widget UI布局 Xml来编写布局,主要布局和逻辑分开,在不同文件中 Widget树来编写布局, 布局...

2020-09-09 15:02:24 742

原创 仅一个方法搞定Flutter Http Dio 请求

首先 pubspec.yaml里面添加dio依赖模块dio: ^3.0.10由于 http请求常用的是GET和POST方法, 请求参数格式要么JSON,要么XML,所以我在第一次封装dio http请求时用了四个方法:Get with Json, GET with XML, Post with Json, Post with xml。完成后发现好多重复代码,于是就相办法把四个方法合并成一个方法,调用的时候传入需要的参数即可譬如 请求method, 可传入“GET”, 或“POST”,..

2020-09-04 17:41:41 828

原创 Trying to create a platform view of unregistered type: plugins.flutter.io/webview 问题解决

今天尝试在Android 工程下的Flutter dart 代码里使用WebView 控件,来打开一个web页面但是首次结果是页面白屏,运行错误如题:大概意思是webview插件没有注册。我按照百度出来的方法,一一对照第一步,在pubspec.yaml文件里添加了 flutter 依赖dependencies: flutter: sdk: flutter # The following adds the Cupertino Icons font to your applic...

2020-08-18 18:11:11 4792

原创 关于Flutter 热更新研究

本文主要参考:https://blog.csdn.net/llew2011/article/details/104075796关于Flutter 热更新研究 经过一个多星期的Flutter热更新研究,从网上尝试了四五种方法,最终发现参考链接里方法最好用,该博主分享了两个方法以及相应代码:一、通过反射方法修改了FlutterLoader的实例instance, 在新的FlutterLoader里重载了ensureInitializationComplete()方法;二、直接重载Fl...

2020-07-30 11:22:01 763

原创 adb server is out of date 最新解决方案

最近androidstudio 更新了最新版本4.0.1,同时安装了dart、flutter等插件。结果不知道哪里操作不对, androidstudio 起来后每次在terminal终端输入adb connect 或者其他adb 命令时,总是频繁“adb server is out of date”,折腾了两天都无结果。我先是参考网上的解决方案 https://blog.csdn.net/liranke/article/details/42524851, 通过 netstat -ano | findst

2020-07-29 14:03:34 3220

原创 如何修改第三方apk的activity

最近在工作过程中遇到修改第三方apk的需求:有一个第三方apk的一个启动页面涉及到广告的显示,需要在代码里去掉相应逻辑。但是apk开发时间久远,又找不到当时的开发者。所以只能尝试自行修改。这里需要用到 Android反编译三件套 apktool 、dex2jar、jd-gui第一步:通过apk逆行解包工具 “ApkTool” 对apk进行解包选择apk 所在全路径,点击解包, 这样就会在apktool根目录下找对应解压出来的apk 资源目录,在对应AndroidManifest.xml

2020-07-14 17:48:28 3163

原创 奇怪的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 2245 1

原创 Js 实现小程序倒计时和快应用秒表

最近开发中遇到抢购倒计时和秒表的功能,都跟时间相关,功能也差不多。想到以后开发中会经常用到这种小功能,故记录分享一下。小程序里的抢购倒计时:onLoad:function(options){this.countdown("2020-6-418:46:13"); //传入限时的时间},countdown(time){constthat=this;varEndTime=newDate(time).getTime();...

2020-06-04 17:58:53 363

原创 原生app签名如何转换成快应用签名

在对接快应用微信支付时发现,快应用微信支付申请使用的包名和签名须是某个原生app的包名和签名。参考文档截图如下:App 微信支付申请时需要填入的包名、签名截图如下:可见快应用微信支付的申请是按一个原生app的方式申请的。包名还好,两者填写一样就行;而签名比较麻烦,因为原生app签名文件是一个*.keystore文件;快应用的签名文件是两个pem文件(certificate.pem和private.pem)。为保证签名一致(快应用签名须和微信支付申请填入的原生app签名一致),须将原...

2020-05-26 10:10:03 697

原创 快应用如何使用storage存储数组

在快应用开发中遇到需要保存数据到本地的需求。在查看快应用开发文档时,发现存储方式只有数据存储和文件存储,而数据存储只有system.storage 方法,且存储的数据类型只有String类型。不像android原生开发中,除了文件存储,还有SharedPreferences简单数据存储,和sqlite 数据库的存储方式。而我本次开发中需要存储像数据库那样的数据,数据量不大,用不找文件存储,但也不小,不是简短一个字符串能够搞定。查看system.storage的介绍文档,发现其对存储值 Stri.

2020-05-22 10:12:10 1206

原创 快应用 fetch接口无法直接获取到网络数据的解决方法

最近开发快应用app时遇到一个奇怪问题:fetch.fecth在开发工具QuickAppIDE “本地预览”时,返回的data数据是正常的;而远程真机就无法直接获取,data内容不是json数据,而是“internal://cache/action-xx.do”的字符串,除了data内容是这个外,其他数据都正常,responsecode也是200,contentlenth也是正常的。经反复思考尝试,发现“internal://cache/action-xx.do”是一个文件路径地址,即数据已经.

2020-05-14 17:12:20 1250 2

原创 快应用初探

目录1.快应用VS微信小程序... 12.准备工作... 23.安装快应用开发工具... 24.建立第一个快应用demo. 35.编译... 46.快应用签名... 5生成签名文件的方法... 5加入签名文件... 5Release build. 57.快应用如何横屏?... 68.快应用的本地日志log. 61.快应用VS微信小程序...

2020-05-08 15:01:48 1040

原创 网络图片加载缓慢问题解决方案

本人最近开发的app是一款电视机顶盒android app,该app打开后会去向服务器求取各个位置的图片,图片内容是服务器后台事先上传并配置好的。客户端哪个页面,哪个位置放哪张图片,都是服务端配置的。所以app开启后的2,3秒内可能要请求十几、甚至几十张图片,并快速显示出来。通常情况下是没有问题的,但是有个别情况图片开始加载到全部加载完毕需要一二十秒,这个问题困扰了我好久。下面是我们的解决过程。...

2020-04-28 10:52:53 5378

原创 如何往Github上传代码

第一次上传github,前后耗时一下午才搞定。中间遇到一些小麻烦,解决过程记录下来,供以后参考。一、Github 网页上的操作www.github.com 官网上注册账号,包括绑定邮箱,邮箱激活等 创建一个新的branch 在branch下创建一个代码仓库repository 建好之后,点击进入repository页面,点击右边绿色按钮”Clone and download”, 在出...

2020-04-24 10:52:13 232

原创 关于ContentProvider/ContentResolver的使用---- Android 进程间通讯之二

关ContentProvider/ContentResolver的使用---- Android 进程间通讯之二ContentProvider 顾名思义,内容提供者。至于其内部内容是以什么样的形式存储的,如 数据库sqlite,文件等方式,对于使用者是不关心的,使用者来说只要能获取、更新数据就行。关于ContentProvider/ContentResolver的示例,网上已经有很多,...

2020-04-23 11:55:06 280

原创 android 开发/测试人员 常用adb命令

前一篇整理了如何删除预装app, 发现android 开发人员和QA 有必要掌握一些常用adb 使用方法1, 连接某设备命令: adb connect 192.168.xx.xx备注: 后面ip为android 某设备ip, 连接之前最好确认该设备adb 功能已经打开2,连接进入设备shell命令:adb shell备注:adb 连接设备成功后,执行该命...

2020-04-16 13:43:10 269

原创 如何彻底卸载\删除android设备上预装app

作为apk开发人员,经常会遇到要在已预装自家apk的设备上调试新版的apk,这时候就会遇到签名冲突或者已安装错误提示 INSTALL_FAILED_ALREADY_EXISTS。这个时候就需要卸载掉该预装app。由于预装app比较特殊,通常很难通过下面常用方法卸载掉:方法一:用户通过遥控器在机顶盒上卸载,尝试卸载预装app时可能会提示“系统app,无法卸载”方法二:通过adb 命令...

2020-04-09 12:05:21 5435

原创 第三方App 如何停掉IPTV EPG 背景音

随着当前IPTV EPG 技术的广泛应用,从机顶盒EPG 直播、点播界面拉起android 第三方apk时遇到的问题也越来越多,背景音的问题就是其中一个。目前某些省份的机顶盒是这样,EPG拉起android 第三方 apk后, EPG的视频播放并没有pause掉。虽然EPG变成后台运行,第三方apk在前台运行,用户已经看不到视频画面,但是EPG 音频依然存在。用户在使用第三方app时会觉...

2020-04-07 15:41:57 736

原创 关于AIDL的使用---- Android 进程间通讯之一

关于AIDL的使用---- Android 进程间通讯之一AIDL AndroidInterface Definition Language,即Android接口定义语言由于进程间不能共享内存,因此,需要提供一些机制在不同进程之间进行数据通信。其中AIDL是方法之一,一般都是配合service来进行跨进程通讯,单独AIDL无法通信。 关于AIDL的使用,一般分为serv

2016-07-11 11:13:40 850

转载 Android中的坐标系统

1、Android中的坐标系统在Android系统中,屏幕的左上角是坐标系统的原点(0,0)坐标。原点向右延伸是X轴正方向,原点向下延伸是Y轴正方向。2、屏幕的宽和高为了在屏幕中的合适位置绘制图形,我们需要使用屏幕的宽和高作为参考,来确定绘制图形的位置。要获得屏幕的宽和高,首先从Activity对象中获得WindowManager对象,然后从WindowManager对象中

2014-10-17 11:03:45 759

转载 android应用程序第一次启动时显示引导界面

市面上好多优秀的应用(举例新浪微博、UC浏览器)都采用了欢迎页面与使用向导的方式给用户带来了良好的用户体验。一般来说用户第一次安装应用或者安装了新版本后第一次进入应用都会显示成 欢迎页面-使用向导-主界面 的方式用户没有安装新版本或者不是第一次进入的时候都会显示成 欢迎页面-主界面的方式想要实现这种不同的分支,我们就要使用一种变量来存储我们是否是第一次进入应用,当然

2014-10-11 15:50:09 23344 5

转载 Android开源项目分类汇总【畜生级别】

[-]Android开源项目分类汇总第一部分 个性化控件View一ListView二ActionBar三Menu四ViewPager Gallery五GridView六ImageView七ProgressBar八TextView九ScrollView十TimeView十一TipView十二FlipView十三ColorPickView十四GraphView十五UI Styl

2014-10-08 12:02:24 9062 3

转载 Android中ViewFlipper详解

Android中ViewFlipper详解 前面已经讲过ImageSwitcher和TextSwitcher。ImageSwitcher用来切换ImageView的,TextSwitcher是用来切换TextView的。但是我们现在要切换自定义View怎么办?ImageSwitcher和TextSwitcher已经不能满足我们的需求。ViewFlipper可以在任意View

2012-11-21 15:24:18 1282

contentproviderresolver.rar

使用contentProvider 和 contentResolver 实现两个APP间数据共享,并利用 getContentResolver().notifyChange 和 ContentObserver 来实现两个app间数据同步刷新

2020-04-22

jadx-gui-dev.exe

jadx 的功能非常的强大,对我而言,基本上满足日常反编译需求。 jadx 优点: 图形化的界面。 拖拽式的操作。 反编译输出 Java 代码。 导出 Gradle 工程。 windows 环境下 直接双击jadx-gui-dev.exe就可以直接运行。运行之后,会启动一个 terminal ,在这里你可以看到你所有操作的输出,错误日志也会输出在这里。 打开之后,你可以选择一个 apk、dex、jar、zip、class、aar 文件,可以看到 jadx 支持的格式还是挺多的,基本上编译成 Java 虚拟机能识别的字节码,它都可以进行反编译。除了选择一个文件,还可以直接将 apk 文件,拖拽进去,这一点非常好用。

2019-08-08

aidltest.rar

由于进程间不能共享内存,因此, 需要提供一些机制在不同进程之间进行数据通信。 其中AIDL 是方法之一, 一般都是配合service来进行跨进程通讯,单独AIDL无法通信。

2016-07-11

mime type 与 扩展名对应表

最全的Mime type 和扩展名的对应表,媒体解析,流媒体开发不可或缺的资料。

2012-03-26

java语言实现二叉树的各种操作

本代码由java语言实现二叉树的各种操作 包括树的创建,查找,删除,按层遍历,输出所有路径,中序遍历等操作

2011-10-14

空空如也

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

TA关注的人

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