- 博客(94)
- 资源 (1)
- 收藏
- 关注
原创 安装APK提示Failure [INSTALL_FAILED_INVALID_APK: Failed to extract native libraries, res=-2]
关于Android打包android:extractNativeLibs的属性配置
2022-09-23 22:54:47
8498
1
原创 Android 原生集成React Native实现RN 模块的热更新方案
Android原生中集成React Native模块,实现模块的热更新方案Android加载react native模块,模块的bundle存放目录,可以是assets中,但assets是只读目录,要实现RN模块的热更新,目录必须是可读可写,所以,我们需要将assets中的bundle复制到不需要存储权限的cache目录下面,RN记载的时候统一从cache目录里面读取bundle文件...
2019-12-24 11:47:57
907
1
原创 Android系统控件使用的踩坑日志
1、ListView在乐视,三星手机上出现崩溃/** * 修复listview在部分手机上崩溃 * java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0 * at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:257) * at...
2019-03-20 19:21:16
421
原创 Android FileProvider详细解析和踩坑指南
详细梳理一下android的文件系统,以及做一下FileProvider的解析。
2018-12-07 14:29:46
140918
11
原创 android手机刷机后,wifi无法使用的解决方法
为了尝鲜android 9.0,将nexus 6p刷到9.0,刷成功之后,wifi无法使用了。查阅资料,找到解决办法就是,刷入boot.img第一步:找到boot.img文件,boot.img文件在你下载的刷机压缩包中,你只需要解压压缩包,复制boot.img文件第二步:进入fastboot模式,使用adb目录下的fastboot命令,使用命令fastboot flash boot boot...
2018-10-12 19:48:30
28303
5
原创 Android App兼容8.0和9.0
Android在8.0限制了后台服务这些,启动后台服务需要设置通知栏,使服务变成前台服务。但是在9.0上,就会出现Permission Denial: startForeground requires android.permission.FOREGROUND_SERVICE。解决办法是在AndroidManifest中添加 <!--android 9.0上使用前台服务,需要添加权...
2018-10-12 19:26:14
21343
3
原创 TextInputEditText在魅族手机上引起的NullPointException
disign.widget包提供了TextInputLayout挺好用的,一般都是搭配TextInputEditText来实现,错误提示,hint提示这些,使用很方便。但是在魅族手机上导致了崩溃(机型android 7.0 魅族5),追踪日志是调用 getLineForOffset()抛异常了。java.lang.NullPointerException: Attempt to invoke ...
2018-10-10 10:36:13
1589
原创 Volley支持HTTP/2
volley暂时是不支持HTTP/2的,这是官方的解释Does volley Support HTTP/2 不过volley设计的扩展性特别好,volley提供的接口HttpStack,可以自己去实现来支持HTTP/2。在Android上,从4.4以后系统就已经支持HTTP/2,但是不稳定,有bug,直到Android5.0才修复bug。第三方库中,有OkHttp 是已经支持了HTTP/2,所以...
2018-08-31 10:01:23
623
原创 经纬度和高德地图计算两点距离面积
关于经纬度,可以看huanhuan的博客根据两点经纬度计算距离 文章详细介绍了经纬度以及根据经纬度,计算两点直接的距离。 高德地图中,计算两点直线距离的公式如下://根据经纬度获取两点距离 public static int calculateDistance(double x1, double y1, double x2, double y2) { final d...
2018-08-30 15:38:56
5070
原创 读者写者问题、ReentrantReadWriteLock、哲学家就餐问题
先记录一下,陈硕博主使用条件变量实现事件等待器的正确和错误的做法 多线程处理时,不可避免要处理对共享数据的读写问题。 1、读者写者问题就很经典,可以看维基百科Readers–writers problem,文章中写了四种读者写者问题,以及饥渴现象。另外也介绍了读写锁Readers–writer lock 2、github的SystemProgramming编程part7Synchroniza...
2018-08-22 15:32:27
430
原创 解决android4.4的bug NoSuchMethodException View.onClick
Android 4.4版本 xml中的onClick属性不兼容support库。用户反馈崩溃,用自己手机测试没有问题,在优测上找了一台相同版本的手机测试,还真找到了问题,View.onClick方法抛NoSuchMethod方法,当时就很奇怪,怎么会找不到onClick方法呢,我又去看了bugly上面的这个方法,搜索出来,全是android 4.4的手机。 我仔细检查代码,崩溃的地方时使用了...
2018-08-07 10:12:35
639
原创 Android App更新
对于Android开发者而言,App应用内更新是不可避免的,强制更新和非强制更新也不相同。本文记录使用系统 自带的DownloadManager来实现App的普通更新和强制更新。DownloadManager已经帮我们处理好了网络和 通知栏的事情,我们只需要指定下载路径,指定通知栏样式和显示策略。DownloadManager.Request request = new DownloadM...
2018-07-16 11:35:59
561
原创 android使用speex进行语音录制和压缩
JNI调用speex 使用cmake编译so库 参考文章audio-speex记录一下,方便自己查阅。—————————–感谢前辈——————————–
2018-07-09 20:52:19
1994
1
原创 记录windows网络和adb的一些命令
很久没写博客了,主要是工作上忙着没什么时间。 今天写一些windows的网络命令和adb操作Android手机的一些命令。 前几天windows10自动升级了,之后就不能上网了,qq登录就提示防火墙问题,搜索之后,发现需要重置网络,网络就正常了。cmd命令:netsh winsock reset 之后,就学习了一下,windows 端口查看命令。 netstat
2018-01-30 15:26:05
955
原创 记录Android基础的样式、动画
一、shape 使用shape可以给view设置背景,调整样式,Android提供了4种,矩形(rectangle)、椭圆(oval)、线(line)、环(ring),使用xml实现不同的shape。可配置的属性很多,具体参考文章ANDROID样式的开发:SHAPE篇,讲解的很详细。 二、Android 动画 这里主要记录补间动画,通过xml来实现动画translation。
2017-12-12 17:12:08
337
原创 gitlab和github使用ssh方式拉取代码的配置
本篇文章基于windows系统公司项目使用gitlab做项目代码托管,平常pull和push代码基本都是使用http的方式,这种方式每次都需要输入用户名和密码,其实也没什么,只是有时候需要拉取很多份代码的时候,就显得很繁琐。后面我就尝试使用ssh的方式拉取代码。使用ssh需要先配置ssh key,下面文章就介绍如何配置ssh key。 第一步:获取ssh key 1. 我使用乌龟
2017-10-10 11:36:16
8455
原创 windows上安装mysql踩过的坑
在mysql官网下载解压版mysql下载地址,下载完了解压出来,找个目录放着。 我的是mysql-5.7.19,打开解压后的目录,将bin目录添加到环境变量paths中。在mysql根目录中看看有没有my-default.ini文件,如果有就复制一份,重命名为my.ini,如果没有,就新建一个my.ini的文件,注意:请不要通过重命名windows自带的txt文件的方式来新建my.ini文件,因为w
2017-09-12 10:54:07
609
原创 Activity调用finish方法,会回调哪些生命周期方法?
Android中activity可以调用finish方法,结束自己,但是调用finish方法,activity到底会走那些生命周期方法呢,我很好奇,就自己测试一下,下面直接上结论:在onCreate中:onCreate->onDestroy在onStart中:onCreate->onStart->onStop->onDestroy在onResume中:onCreate->onStart->on
2017-09-11 10:12:20
3989
原创 Java的堆、栈和垃圾回收
平常写Android,慢慢忘了很多的Java的基础知识,之后看到一道面试题,其实就是java能否实现像c一样的swap方法 public static void main(String[] args) { MyClass myClass = new MyClass(); myClass.mainTest(); } public void mainTest
2017-08-30 18:27:13
1578
原创 关于Tinker的学习资料
之前学习热修复Tinker,收集了很多资料,也看了不少,还有一些还没看完,就先记录下来,方便后面学习,免得想看的时候后,又找不到了。 1. APK签名方案V2 2. Android应用保活,Android进程保活 3. Dex文件格式 4. Dex文件特有编码MUTF-8 5. Dex文件结构,Dex文件结构2 6. Dalvik 可执行文件格式 7. Tinker 8. HotFi
2017-08-28 19:28:58
344
原创 一些常用的控件
一、 开关控件和双向拖动的SeekBar 二、六边形控件 三,正方形拖动控件,可以拖动改变位置 限于本人能力,还有很多需要优化的地方,我把源码提供出来,希望有朋友可以一起优化一下。 源码努力!!!
2017-08-18 18:15:57
492
原创 Android中文件上传
Android中使用HttpURLConnection上传文件及图片Android中文件上传的要点:指定请求头的Content-Type。确定一个文件上传的格式,即协议,告诉服务器如何解析你上传的数据,定义个一个boundary,boundary可以是任意的一串字符串,也可以是UUID。 结合1和2,Content-Type的格式如下: Content-Type:”multipart/form
2017-08-07 10:29:44
483
转载 Android消息机制底层分析
从技术实现上来说,消息机制还是比较简单的。从大的方面讲,不光是Android平台,各种平台的消息机制的原理基本上都是相近的。 本文将基于Android 4.4代码,为大家剖析一下Android的消息机制。
2017-08-01 17:49:07
392
转载 TCP连接的建立和终止
本文系转载,分享者机智云开发者讲的很有意思,所以忍不住转载了,方便学习,感谢原作者!今天的分享,是关于前两天读到的心得,TCP建立连接时三次握手,断开时为何4次握手的自我理解:恋爱时连接时客户端说:SYN(约吗?)服务器说:SYNACK(约啊,一起)接着客户端说:ACK(好的)热恋时 传输了n个字节的数据之后,开始分手流程分手时 客户端说:FIN(分手了啦!)接着服务器说:ACK(分
2017-07-28 15:00:16
399
原创 学习热修复的一些基础知识
项目中使用了微信团队的热修复工具TinkerTinker,因为并没有搭建补丁包下发平台,所以使用的是bugly提供的热更新平台bugly热更新Tinker的实现原理可以直接看官方文档,并且明确指出tinker暂不支持动态更新的地方:不支持更新AndroidManifest文件,就是说不支持新增Android四大组件,不支持修改versionCode、VersionName、包名等。不支持一些 o
2017-07-27 14:37:23
329
原创 Android中的小技巧
Android中ListView等滚动到某个位置失效//第一种lv.setSelection(position)//第二种lv.smoothScrollToPosition(position)第一种直接就是选中位置,第二种有滚动动画,但是有时候,滚动效果看不到,解决方式新建一个runnable,如下: lv.post(new Runnable() {
2017-07-20 14:08:17
285
原创 JAVA中的位运算
本文属转载,感谢原博主BuleSkyJava位运算原理及使用讲解日常开发中位运算不是很常用,但是巧妙的使用位运算可以大量减少运行开销,优化算法。举个例子,翻转操作比较常见,比如初始值为1,操作一次变为0,再操作一次变为1。可能的做法是使用三木运算符,判断原始值为1还是0,如果是1,设置为0,否则设置为0.但是使用位运算,不用判断原始值,直接改变值就可以: 1^num//num为原始值 当然,一
2017-07-17 16:05:24
1027
原创 git的常用命令
git bash的快捷提示: tab键pwd:显示当前目录git初始化,创建git仓库 git init查看分支列表 git branchgit添加文件的两步(工作区和暂存区) 第一步:git add <file>;第二步:git commit -m "message",-m后面的是本次提交的说明,用于标识,建议输入有意义的文字查看git仓库的状态,可以看到那些文件被修改、被删除、被
2017-07-14 17:00:41
237
转载 Volley的任务执行
本文转载于Volley源代码分析 – 2:任务的执行,CacheDispatcher、NetworkDispatcher、ResponseDelivery,感谢原博主! 现在我们来看看CacheDispatcher和NetworkDispatcher从上面的框架图可以看出,大部分任务的执行都是通过CacheDispatcher和NetworkDispatcher来分发的。 从RequestQue
2017-07-14 15:58:49
331
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人