![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android
100斤
心之所向,素履以往
展开
-
ViewPager嵌套HorizontalScrollView滑动冲突以及点击抖动问题解决
ViewPager嵌套HorizontalScrollView滑动冲突以及点击抖动问题解决项目中有这样一个礼物弹窗,可选择角色的数量不固定,需要左右滑动,加上弹窗两个TAB可以左右滑动,所以存在滑动冲突。弹窗主体使用viewpager,角色选择栏使用HorizontalScrollView,嵌套关系如下图所示。礼物部分(忽略空态):- ViewPager /原创 2018-01-31 23:18:06 · 2918 阅读 · 0 评论 -
Theme.NoDisplay 6.0以下的坑
线上有一个奇怪的Crash:java.lang.IllegalStateExceptionActivity {com.hongxiu.app/com.hongxiu.app.wxapi.WXEntryActivity} did not call finish() prior to onResume() completingandroid.app.ActivityThread.perfor...原创 2018-08-21 16:40:49 · 3930 阅读 · 1 评论 -
ExoPlayer踩坑:IndexOutOfBoundsException
项目中语音播放用到Google开源的ExoPlayer,基本使用很简单,但是线上还是出现了一些测试没有发现的crash。其中一个就是IndexOutOfBoundsException。com.google.android.exoplayer2.Timeline$1.getPeriod(Timeline.java:516)2 com.google.android.exoplayer2.Timel...原创 2018-10-22 12:59:30 · 2372 阅读 · 1 评论 -
Unable to execute port: can't read "configure.sdkroot"
echo macosx_sdk_version 10.14 | sudo tee -a /opt/local/etc/macports/macports.conf原创 2018-11-01 00:55:41 · 459 阅读 · 0 评论 -
idea.case.sensitive.fs=true
1、创建idea.properties文件touch ~/Library/Preferences/AndroidStudio3.2/idea.properties2、写入 idea.case.sensitive.fs=true3、重启AndroidStudio原创 2018-11-02 00:20:11 · 1457 阅读 · 0 评论 -
adb shell dumpsys activity top
在Android P的模拟器上执行adb shell dumpsys activity | grep "Focus"无法显示顶层的Activity。于是就想着换一个命令,结果发现了更强大的adb shell dumpsys activity top。功能:0、可以显示当前的Activity1、可以显示View Hierarchy,看view的类信息2、可以显示Handler中的Messag...原创 2019-01-24 16:48:20 · 18397 阅读 · 0 评论 -
就为了这个功能也要下载一个IDEA!
使用Android Studio开发时,一直没有一个合适顺手的UML工具。偶然间看到后台同学使用IDEA使用diagram功能显示类图关系,想着android的工程应该也可以使用,试了一下,果然是ok的!ArrayList的类图:glide的类图:使用方法查看一个类的继承关系:选中类-右键菜单-diagrams-show diagrams查看一个package的类图:选中pack...原创 2019-01-24 16:49:29 · 625 阅读 · 0 评论 -
图凌闪屏页及Android彩蛋探究
前言通过本文,你可以1、了解一种特别的闪屏2、了解android版本彩蛋的实现原理3、获得一个android各版本彩蛋的demo特殊的闪屏在体验App时发现了一款叫‘图凌’的app,闪屏页非常特别。从下图可以看到,是一个以桌面壁纸为背景的页面。这种闪屏效果让人眼前一亮,所以非常好奇他的实现原理。在不破解apk的情况下(破解失败,有腾讯乐固加固==),猜想了几种实现方式:1、通过A...原创 2019-01-24 16:55:20 · 1283 阅读 · 0 评论 -
Android WebSocket 实践
既生HTTP何生WebSockt与服务端交互的协议中,HTTP只能被动接收客户端请求,然后响应。而WebSocket在客户端与服务端建立连接以后,服务端可以主动发消息给客户端。这就是WebSocket的特点。应用因为服务端可以主动发消息的特性,WebSocket在以下场景使用非常多:1、推送2、聊天室3、开发工具4…大部分功能依赖于产品的业务,投入使用可能比较困难,而开发工具是开发...原创 2019-01-24 16:57:08 · 1921 阅读 · 0 评论 -
Gradle读取package.json
ReactNative项目中,ReactNative版本配置在package.json文件中,另外Android的build.gradle中也需要配置相应的版本。所以能不能只配置一处呢?方法就是gralde中读取package.json的react-native的版本号。代码如下:String reactVersiondef jsonFile = file('../package.jso...原创 2018-08-31 01:22:02 · 2293 阅读 · 0 评论 -
SVG踩坑:Resources$NotFoundException: File res/drawable-hdpi-v4/
SVG踩坑:Resources$NotFoundException: File res/drawable-hdpi-v4/项目中使用了SVG代替PNG,线上出现了Resources$NotFoundException: File res/drawable-hdpi-v4/xxx.png的异常。Crash处的代码:VectorDrawableCompat vectorDrawableCo...原创 2018-08-17 12:49:16 · 6144 阅读 · 2 评论 -
ReactNative踩坑:封装原生UI组件内存泄漏记录
项目中初次使用ReactNative,还是处在踩坑阶段。 偶然发现,多次打开首页页面会闪,打Log发现项目中封装给React Native使用的原生组件刷新了多次。再看对象实例,发现每次刷新都属于不同实例,内存泄漏了!!!刷新监听的事件是 com.facebook.react.bridge.LifecycleEventListener.onHostResume()。也就是页面首次加载和act原创 2018-02-06 10:22:42 · 2325 阅读 · 0 评论 -
ReactNative踩坑:ReactInstanceEventListener内存泄漏
内存走查的时候发现,app退出后堆栈中存在两个闪屏页的Activity,如上图所示。导出hprof文件后,重新用AndroidStudio打开,找到SplashActivity如下图: 选择蓝色的这一行Jump to Source出现了如下代码: private void createContext() { final ReactInstanceManager原创 2018-02-07 16:58:11 · 1962 阅读 · 0 评论 -
ReactNative踩坑:ReactContext!=Activity
项目中有一个书架的View提供给ReactNative使用,监听ReactNative相应的生命周期进行界面刷新,代码如下//ViewManagerpublic class BookShelfManager extends SimpleViewManager<BookShelfView> { private BookShelfView mBookShelfView; @...原创 2018-03-11 14:45:47 · 3960 阅读 · 0 评论 -
自定义手势缩放的Recyclerview
自定义手势缩放的Recyclerview最近做了一个类似腾讯动漫的漫画的阅读器,用Recyclerview作为基础的控件展示漫画。因为漫画需要支持手势缩放,但是原生Recyclerview并不支持,而且开源的缩放Recyclerview也没有找到,只能自己造一个轮子。这篇文章记录了一些思路。效果预览图:https://github.com/PortgasAce/ZoomRecyclerVi...原创 2018-05-01 16:57:22 · 5996 阅读 · 11 评论 -
java.lang.UnsatisfiedLinkError
新建项目迁移老项目的代码,引入了一些包,但是一直报UnsatisfiedLinkError错误,原因,大致是so库的问题,但是找原因花了很多时间。记录一下问题。打开apk看了以后发现目录中只有armeabi-v7 和 x86,而没有armeabi。看gradle果然缺失armeabi: ndk { abiFilters “armeabi-v7” ...原创 2018-06-01 15:49:03 · 5773 阅读 · 0 评论 -
SingleTask与android.intent.action.MAIN的坑
SingleTask与android.intent.action.MAIN的坑项目首次封板内测期间用户反馈了一个问题,无论打开多少页面,将应用推至后台再启动就回到了主页。在内测期间才发现这么严重的问题,开发和测试都吓了一跳,庆幸这次内测只在公司范围内。排查这个问题的时候,有点懵。项目是ReactNative架构的,原生为RN提供了清除Activity栈的方法,所以误以为是RN的错误调用导致...原创 2018-08-14 12:54:33 · 1300 阅读 · 0 评论 -
ReactNative ReactContext#getCurrentActivity NullPointerException
ReactNative ReactContext#getCurrentActivity解析ReactNative与原生混合开发时,原生经常需要为ReactNative提供组件。提供组件时getCurrentActivity使用不当容易造成NullPointerException。以下是一个简单的示例分析:// 随便一个自定义view,继承自LinearLayoutclass Cust...原创 2018-08-11 00:43:54 · 2400 阅读 · 0 评论 -
Android开发神器:Pandora
Android开发神器:Pandora前言工欲善其事,必先利其器。开发效率很大程度上取决于开发工具,举个例子,Web前端开发页面调试run一下几秒钟,Android客户端run一下,3、5分钟起步!差距可想而知。现在iOS有Flipboard开源的神级调试工具FLEX,可以轻松查看控件属性,查看数据库,d动态修改属性和变量,查看文件系统,查看网络请求过程等等。而ReactNative摇...原创 2018-08-15 16:09:13 · 2196 阅读 · 0 评论 -
源码阅读之Activity启动与App启动流程
本文简单分析一下activity的启动流程。分析基于Android 9.0源码,有兴趣的朋友可以在AndroidStudio创建一个API28的HelloWorld工程跟着看,如果发现文章有什么问题,可以联系我。Activity在应用内启动流程话不多说,先上图,流程图1:简单介绍一下涉及的类:Instrumentation工具类,包装了ActivityManagerService...原创 2019-02-20 01:30:18 · 989 阅读 · 0 评论