ExoPlayer 源码阅读小记--缓存模块及获取HLS已缓存大小 基于ExoPlayer 2.17.1源码分析:首先回到上一篇文章里第一次涉及到缓存的地方:调用StatsDataSource封装的CacheDataSource,这里会调用TeeDataSource 的open,Tees翻译就是三通的意思,这是个一进二出的三通,一个水龙头冷水进,一路进小厨宝缓存加热后出,一路直接水龙出//TeeDataSourcepublic long open(DataSpec dataSpec) throws IOException { bytesRemaining =
Android 在Service中使用ViewModel 别想了,官方并不推荐这种做法。ViewModel应该与Activity或Fragment紧密结合使用,因此它注定要存在于应用程序的UI层中。因此,我不建议在Service中使用ViewModel。可以将Service和ViewModel的公共代码抽出。具体参考:https://github.com/android/architecture-components-samples/issues/137#issuecomment-327854042The ViewModel should be used
Android Gradle 打包时排除 Assets 目录指定文件 直接上代码,排除 Assets 目录或者子目录下的 qaa.js,ccc.css,bbb.t 这3个文件,多个文件以!开头:结尾。当一个文件夹下所有文件都排除后,空文件夹会自动删除。 buildTypes { debug { aaptOptions { ignoreAssetsPattern '!qaa.js:!ccc.css:!bbb.t:' } }}...
获取 Android Toolbar的真实准确高度问题 项目中设置了Toolbar代码片段如下<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="wrap_content">
强制开启Android 分区存储 沙盘文件系统 为了测试Android 11下强制分区存储后的应用兼容问题,这里摸索了下目前的打开方式1. 在AS里下载API 30的 虚拟机2. 打开虚拟机,进入首页后,执行adb shell sm set-isolated-storage on3. 安装应用,系统 > 高级 > 开发者选项 > 应用兼容性变更,找到对应应用勾上下面几项4. 卸载应用,重新安装5. 这个时候发现无论应用Target API多少,是否设置requestLegacyExternalStorage 都无法打开
Android RadioButton 在低版本设置 android:button= @null 去除系统按钮样式失效的解决方法 Android RadioButton 在低版本设置 android:button= @null 去除系统按钮样式失效无效的解决方法具体原因参考这篇文章:https://blog.csdn.net/wl9739/article/details/53744324解决方案:在xml里同时加上 android:button="@null" app:buttonCompat = "@null"...
Kotlin 杂谈之 setOnClickListener 接口入参为什么可以简写成 Lambda Kotlin 杂谈之 setOnClickListener 为什么可以简写成 Lammbda先上代码://例1 //java里定义的一个接口 public interface OnClickListener { void onClick(View v); } //kotlin调用 view.setOnClickListener { //...
Intellij或者Eclipse导出可运行jar包运行比IDE里慢的一种原因 Intellij或者Eclipse导出可运行jar包运行比IDE里慢的一种原因现象查找原因解决方法现象最近在写一个百亿级数据库导出程序的时候,发现代码在IED(Eclipse或者Intellij)中导出一个测试的百万级数据库只要36秒,然而当打成jar包单独运行的时候,发现同样的数据量却需要240秒。大致代码如下: String p = path + "/" + exportFil...
Android 加载H5页面数据无法传递正确展示的一个可能原因 Android 加载H5页面数据无法传递正确展示的一个可能原因最近解决一个比较有意思的问题:功能:是这样的Android 通过 WebView 加载一个H5网页,然后向网页里动态传递一些数据,传递方式为将数据转成 json,然后通过 loadurl 的方式传递json,调用js设置网页数据。现象:使用过程中发现某些情况下页面无法正确加载传递过去的json数据,导致H5页面展示错误。原因...
直接打开开发者选项,绕过oppo恶心的验证码 这里写自定义目录标题直接打开开发者选项,绕过oppo恶心的验证码直接打开开发者选项,绕过oppo恶心的验证码目前本人的Color OS 3.0测试可用这个方法:新建Android工程,在activty执行以下代码打开开发者即可:/** * 打开开发者模式界面 */ private void startDevelopmentActivity() { ...
android TextView 跟随 seekBar 一起滑动,最简单代码,完美实现,无偏差 开发中遇到如题的需求找了一些方法,发现一起移动都会有偏差,于是就自己修改了下代码,可以实现无偏差一起滑动,代码如下: 1.布局代码<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto...
InputConnectionWrapper commitText StackOverflowError 开发过程中打开 Android Studio 的 Android Profiler 做性能优化, 然后在输入框处准备输入时应用异常退出,代码没有任何修改,只是打开了 之后只要一点开输入文字就异常退出错误如下:04-13 17:36:12.906 9841-9841/demo.greendao D/Error: ERR: exClass=java.lang.StackOverflow...
Android Studio 无关日志太多解决方法 Logcat 右上角 点击 Edit Filter Configuration 然后 Log Tag 填入 ^(?!.(OpenGLRenderer|dalvikvm)).$ 中间要过滤的TAG字符更具实际情况填写,还有别忘了填写Package Name当前包名...
Gradle 切换阿里云仓库 转载地址:http://xuanzhui.iteye.com/blog/2335870 原因是国内访问jcenter太慢,甚至连接不上,就会报各种关于依赖更新失败的错误。 以前oschina(也就是开源中国)提供了jcenter的镜像地址,然而不幸的是因为各种原因,最近停止服务了开源中国 Maven 镜像库关闭访问幸运的是阿里云提供了jcenter镜像 http://maven.al...
Android Studio Gradle 代理设置 Android Studio Gradle 代理配置由于使用的是公司内网导致,AS需要代理才可以联网,但是设置了AS的代理并不能使Gradle也处于代理环境需要单独设置Gradle的代理: 修改gradle.preportisesystemProp.http.proxyHost=代理主机地址地址systemProp.http.nonProxyHosts=忽略地址systemPro...
彻底明确怎样设置minSdkVersion和targetSdkVersion minSdkVersion和targetSdkVersion相信非常多人都不太理解。我在网上也看了很多关于这两者差别的文章,感觉说的都非常模糊。直到我在stackOverFlow看到Android Min SDK Version vs. Target SDK Version这篇文章后,我才最终弄清楚怎样去设置minSdkVersion和targetSdkVersion。如今我将分享给大家。简言...