androidstudio
kururunga
这个作者很懒,什么都没留下…
展开
-
Android原生数据库的升级更新OnUpgrade
最近从Room转移到原生sqlite,数据库更新这样处理。1 // 如果数据库文件不存在,只有onCreate()被调用(该方法在创建数据库时被调用一次)2 public abstract void onCreate(SQLiteDatabase db);3 // 如果数据库文件存在,会调用onUpgrade()方法升级数据库,并更新版本号。4 public abstract void onUpgrade(SQLiteDatabase db,int oldVersion,int newVersion原创 2022-02-15 16:12:23 · 1763 阅读 · 0 评论 -
Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8.
最近把androidstudio 浏览器项目更新到gradle7.0.3除了一些问题。如在这个版本java 8已经不行了,得用java11,下载个java11配置一下就行。gradle jdk选择11就完事。原创 2021-10-21 23:27:28 · 276 阅读 · 0 评论 -
Android git多次提交的解决思路
最近啊代码审核非常严格,主分支提完得写验证报告,各种情况都得走一遍,比如ota等。然后我又一次性提交了多个代码,如A,B,C三笔push,但是因为某些原因,我需要修改B或者A的push代码,最后一笔提交是可以commit --amend,但是A和B不行,于是我只能进行下面几个步骤:1.git reset +某个commitid2.然后我用git status . 发现有很多修改,此时git pull --rebase也是有冲突的3.然后我git restore这些文件4.git pull --reb原创 2021-06-29 20:05:56 · 142 阅读 · 0 评论 -
Android关于写代码的思考
1.匿名内部类如果多的话统一处理,不需要单独设置监听,少的话可以直接设置点击,如点击事件: @Override public void onClick(View v) { switch (v.getId()) { case R.id.iv_go_settings: dealGoSettingsClick(); break; } }2.try…catch精确到真正原创 2021-06-18 15:48:20 · 117 阅读 · 1 评论 -
Android浏览器性能优化实践版
项目从立项到出卖也就4,5个月实践,后期的时候总是得进行一些优化环境,比如App启动速度,性能,丢帧优化,内存泄漏等。下面是全局搜索和浏览器流程下面开始说一下浏览器上的一些优化1.启动:Application非致命比较耗时的操作都可以放子线程去初始化,如何评判是否耗时,由于我们的要求是启动速度在0.5s内,所以在0.03s左右的耗时操作都放子线程。这个时候维护一个统一的线程池就很必要了。腾讯sdk和信息流的广告sdk比较耗时,所以都放子线程了,而其他一些由于时间很短,所以暂时忽略。2.IO操原创 2021-06-03 20:30:42 · 208 阅读 · 1 评论 -
Android关于log的分析目录分析anr分析报错分析
关于Android log的分析,给出几点心得,大家在分析抓取的时候能更快定位问题,比如anr和crash等。这个是目录图:外层的目录我们就不看了,直接进入mobielog1.Crash:这个看crash_log,不用说 很多人都知道,也可以看main_log2.Anr:看最后一行sys_log比如:I ActivityManager: Done dumping05-24 11:41:55.433642 1103 13504 I AnrManager: dumpStackTraces原创 2021-05-24 12:00:54 · 936 阅读 · 1 评论 -
Android 搜索报错: java.io.InterruptedIOException: thread interrupted ,延迟搜索策略
报错地方:java.io.InterruptedIOException: thread interrupted at okio.Timeout.throwIfReached(Timeout.java:145) at okio.Okio$1.write(Okio.java:76)我在搜索的时候出现这个问题,一开始以为是rxjava后面请求未解绑的问题,但是实际上,在zip操作的时候已经做了判断 if (null != zipDisposable &&a原创 2021-04-25 21:26:01 · 7646 阅读 · 0 评论 -
Android Viewpager+Tablayout+Fragment+Webview内存优化最终版
如图:全局搜索首页是信息流的形式显示展示,搜索页就是 Viewpager+Tablayout+Fragment,下面说下内存优化。1.Viewpager+Tablayout+Fragment的优化,针对这个我还专门写了个例子去测试,结果从leakcanary发现切换fragment的时候泄露很严重,这是demo里我之前的写法,1.MainActivity.java: package coolpad.testlistfragment;import android.support.design.w原创 2021-03-30 17:44:33 · 569 阅读 · 0 评论 -
Android webview点击视频播放卡住 黑屏 点击播放有声音但画面卡住或者黑屏的分析
最近webview结果页加载出现这个问题很头疼,因为你在log根本看不到什么有用的信息,即使有,就像我碰到的这个问题,看测试给的log是这个:2021-03-29 14:41:12.754 21510-21544/com.journeyui.globalsearch I/ui.globalsearc: Explicit concurrent copying GC freed 1040234(25MB) AllocSpace objects, 20(14MB) LOS objects, 49% free,.原创 2021-03-29 15:38:46 · 1872 阅读 · 0 评论 -
Android Skeleton使用和阴影动画的说明
这个框架效果挺不错的,我在Recyclerview中使用,但是有些坑要说明下。引用官方demo的图:先说使用:1.引入依赖 implementation 'com.ethanhua:skeleton:1.1.2'//动画 implementation 'io.supercharge:shimmerlayout:2.1.0'2.直接在初始化recyclerview的时候将Skeleton注册进去 RvRecentApp = findViewById(R.id.rv_原创 2021-03-26 17:40:39 · 1117 阅读 · 0 评论 -
Android 骨架屏效果,了解一下
以前做应用开发时,在数据尚未加载前一般会先给用户一个提示,最简单粗暴的方式就是菊花图,大多数做法是放一张有个性的静态图,示意正在加载数据,这样体验会好些,直到出现 Skeleton Screen(中文一般叫做骨架屏)极大地提升用户感知体验。其实一开始我并不知道这个效果叫什么名字,后来在 GitHub 看到有人开源了,赶紧 Star。今天我给大家推荐几个 Skeleton Screen 相关库,来了解学习一波。1、ShimmerRecyclerView简介A custom recycler view w转载 2021-03-26 13:54:04 · 201 阅读 · 0 评论 -
Android webview当腾讯x5内核首次下载未完成时视频全屏/横竖屏播放卡死的问题
最近浏览器一直报出这样几个问题:1.信息中心中访问百度地图网页版,无法定位到当前位置2.浏览器全屏播放卡死,多次点击闪退我用的webview是腾讯的x5 webview,一直以为很稳定,其实这个内核是需要下载的,可以设置在wifi或者手机流量上下载,然而在测试环境下,下载速度感人,可能下载失败,就需要重新下载。而测试刚刷机联网进去全局搜索,然后二级页面跳浏览器,此时内核大概率是没有下载成功替换的,而且,就算你是直接导入静态内核(操作有些麻烦,需要从微信下载内核,然后导出到电脑,然后把so库和\ass原创 2021-03-19 21:26:59 · 1249 阅读 · 0 评论 -
Android App冷启动速度白屏优化 实现从2000ms - 700ms的变化
现在做的全局搜索和浏览器应用目前需要做冷启动优化,因为是植入到系统的,所以没有闪屏页面,不能通过添加背景页的方式优化白屏,因此只能从Activity和Application入手硬核优化。这是没优化的启动速度C:\Users\liwenpeng1>adb shell am start -W com.journeyui.globalsearch/com.journeyui.globalsearch.GlobalSearchMainActivityStarting: Intent { act=andr原创 2021-03-02 11:44:40 · 267 阅读 · 0 评论 -
Android字体的适配问题
很明显,当Android系统设置了超大字体的时候,你的应用里设置的sp字体就会跟随系统变得很大,导致界面混乱有两个解决办法。1.Activity设置字体我们可以在BaseActivity中设置 @Override public Resources getResources() { Resources res = super.getResources(); Configuration config = new Configuration();原创 2021-02-07 14:59:08 · 1238 阅读 · 0 评论 -
Android SVG的使用
打开AndroidStudio之后选择该svg文件,然后正常引用就行原创 2021-01-18 18:24:27 · 238 阅读 · 0 评论 -
Android Textview点击闪屏穿透问题问题
最近在全局搜索里开发一个浏览器,碰到了底部点击新建窗口,闪屏,有时候点击事件还没反应按下去会显示主题,最后发现是对导航栏的处理问题,底部导航栏处理前需要判断是否可见,可见再隐藏,不可见就不用。 /** * 隐藏虚拟按键,并且全屏 */ public static void hideBottomUIMenu(AppCompatActivity context,Window window) { //隐藏虚拟按键,并且全屏 if (Build.V原创 2021-01-12 18:49:20 · 342 阅读 · 0 评论 -
Android基于Okhttp 3.5对Okhttp源码解析一
为什么不用最新版本 4.9呢?因为kotlin版本的不太好看。基于Okhttp 3.5版本解析Exec Code:同步:OkHttpClient client = new OkHttpClient();Request request = new Request.Builder().build();Call call = client.newCall(request);call.execute();异步:enquene code:OkhttpClient client = new Ok原创 2020-12-30 10:54:39 · 358 阅读 · 0 评论 -
Android WebView和AgentWebview不刷新页面不闪屏隐藏头部或者某个标签
现在全局搜索需要加入这个功能,然而返回的地址却是带有头部百度和搜索框的,这些本来是可以通过tradeid进行客制化去掉,但是百度没抽出人来做,所以需要自己处理。如果我们在webview中的WebViewClient里的OnPageFinished方法中做的话会出现闪屏,而且调用时机也可能会延迟,造成打开页面后隔了几秒才隐藏网页头部,显然不是我们要的效果,而OnPageStarted方法调用隐藏也没用。后面找到WebChromeClient的onProgressChanged进行处理setWebChrom原创 2020-12-29 17:58:04 · 677 阅读 · 0 评论 -
EditText中imeOptions属性使用及设置无效解决
最近在做重做全局搜索相关的apk,包含本地的设置选项和百度的相关搜索,下面是软键盘相关。虽然通常输入法软键盘右下角会是回车按键但我们经常会看到点击不同的编辑框,输入法软键盘右下角会有不同的图标点击浏览器网址栏的时候,输入法软键盘右下角会变成“GO”或“前往”而我们点击Google搜索框,输入法软键盘右下角会变成 放大镜 或者“搜索”而决定这个图标的变换的参数就是EditText中的 android:imeOptionsandroid:imeOptions的值有actionGo、 actionSe原创 2020-12-24 11:40:28 · 695 阅读 · 0 评论 -
Android adb实用命令获取当前Activity或者Fragment
查看当前activity以及包名 :adb shell dumpsys window w | findstr mCurrenadb shell “dumpsys window | grep mCurrentFocus”(1)查看当前Activity :adb shell “dumpsys window w | grep name=”(2)查看当前栈顶的Activity :adb shell “dumpsys activity | grep mFocusedActivity”或者:adb shell原创 2020-11-26 17:03:17 · 1966 阅读 · 0 评论