自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

kururunga的博客

Android+Java EE 开发者

  • 博客(306)
  • 资源 (4)
  • 收藏
  • 关注

原创 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 32 1

原创 OBS Studio安装教程以及录制等详细配置

之前录制视频分别用了拍大师,爱剪辑,EV录屏和嗨格式录制大师,这几个要么导出收费,要么各种水印,讲道理,难道没一款免费的软件?有,Obs studio各大主播都在用的串流和录屏软件。1.下载地址如下https://obsproject.com/zh-cn/download但是这个软件下载速度非常慢,还会经常下载失败,我们点击官网下面这个,使用种子下载,然后就能在迅雷很快速的下载了2.下载完可能会提示环境缺少Microsoft Visual C++ 2019 Redistributable Pac

2021-02-15 01:37:42 1394

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

原创 最近事情太多 写不了博客 后面更新

最近事情太多 写不了博客 后面更新

2021-07-04 23:30:32 15

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

原创 Android浏览器性能优化实践版

项目从立项到出卖也就4,5个月实践,后期的时候总是得进行一些优化环境,比如App启动速度,性能,丢帧优化,内存泄漏等。下面是全局搜索和浏览器流程下面开始说一下浏览器上的一些优化1.启动:Application非致命比较耗时的操作都可以放子线程去初始化,如何评判是否耗时,由于我们的要求是启动速度在0.5s内,所以在0.03s左右的耗时操作都放子线程。这个时候维护一个统一的线程池就很必要了。腾讯sdk和信息流的广告sdk比较耗时,所以都放子线程了,而其他一些由于时间很短,所以暂时忽略。2.IO操

2021-06-03 20:30:42 49 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 91 1

原创 Possible solution: - Disable offline mode and rerun the build

Android碰到这个问题:Received status code 403 from server: Forbidden这个是在引入新工程后出现的此问题,开始怀疑是gradle问题,结果并不是,同事说把Greendao版本改成+: implementation 'org.greenrobot:greendao:+' implementation 'io.github.yuweiguocn:GreenDaoUpgradeHelper:+'这样会导致这些框架全部引用最新的,最终我发现

2021-05-10 21:48:32 1367

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

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

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

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

转载 Android 骨架屏效果,了解一下

以前做应用开发时,在数据尚未加载前一般会先给用户一个提示,最简单粗暴的方式就是菊花图,大多数做法是放一张有个性的静态图,示意正在加载数据,这样体验会好些,直到出现 Skeleton Screen(中文一般叫做骨架屏)极大地提升用户感知体验。其实一开始我并不知道这个效果叫什么名字,后来在 GitHub 看到有人开源了,赶紧 Star。今天我给大家推荐几个 Skeleton Screen 相关库,来了解学习一波。1、ShimmerRecyclerView简介A custom recycler view w

2021-03-26 13:54:04 51

原创 Android浏览器webview的加载优化(加载不出白屏,加载一半屏幕,一直加载,加载页面截断,某些页面部分无法点击但是刷新几次后能点击等一系列疑难杂症)

全局搜索结果页分首页,视频,新闻,图片,本机五个标签。其中前四个都是接的百度搜索引擎,但是每个页面做了特殊化处理,比如隐藏百度各个页面的顶部分类tab,只显示内容。下面说下优化webview加载1.接入腾讯x5 webview,这个很关键,如果你的工程和x5关联很大,应该采用静态化内核的方案去接入而不是仅仅下载一个jar。2.webview不采用布局的方式,而是直接new,传入的context是全局的context而不是activity的context。3.我的页面是顶部搜索框,下面tablayout

2021-03-24 15:05:52 338

原创 Android webview当腾讯x5内核首次下载未完成时视频全屏/横竖屏播放卡死的问题

最近浏览器一直报出这样几个问题:1.信息中心中访问百度地图网页版,无法定位到当前位置2.浏览器全屏播放卡死,多次点击闪退我用的webview是腾讯的x5 webview,一直以为很稳定,其实这个内核是需要下载的,可以设置在wifi或者手机流量上下载,然而在测试环境下,下载速度感人,可能下载失败,就需要重新下载。而测试刚刷机联网进去全局搜索,然后二级页面跳浏览器,此时内核大概率是没有下载成功替换的,而且,就算你是直接导入静态内核(操作有些麻烦,需要从微信下载内核,然后导出到电脑,然后把so库和\ass

2021-03-19 21:26:59 330

原创 android 处理webView关闭音视频还在播放

在Activity或者fragment对应得生命周期里这样写: @Override public void onResume() { super.onResume(); mTecentWebview.onResume(); mTecentWebview.resumeTimers(); } @Override public void onPause() { super.onPause();

2021-03-17 14:41:15 53

原创 Android webview 搜索词拼接跳转问题

现在浏览器搜索用的是百度的搜索引擎,现在拼接没用word关键字转码,导致搜索拼接出问题,webview结果页直接调用shouldOverrideUrlLoading跳浏览器打开,现在转码就解决这个问题。如下: String videoEncode = null; try { videoEncode = URLEncoder.encode(word, "utf8"); } catch (Exception e) {

2021-03-15 11:22:39 53

原创 Android 浏览器图片下载无法识别无图片显示其他的坑

目前浏览器下载图片一般就是没问题的,但是我对图片地址的判断是 if (strFolderNameLC.endsWith(".jpeg") || strFolderNameLC.endsWith(".gif") || strFolderNameLC.endsWith( ".png") || strFolderNameLC.endsWith(".bmp") || strFolderNameLC.endsWith(".wbmp") || strFo

2021-03-05 11:32:16 735

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

原创 Andriod tablayout手动刷新tab的文字

现在介入搜索引擎这块,目前有百度和搜狗,默认是百度。顶部搜索框进行搜索引擎的一个弹窗选择,然后点击修改tablayout中显示的是百度还是搜狗,目前采用eventbus做点击后的事件传递,然后用tablayout选择位置去设置文字即可刷新 @Subscribe(threadMode = ThreadMode.MAIN) public void onChangeEngineMessage(ChangeEngineToGlobalEvent changeEngineToGlobalEvent

2021-02-08 11:29:56 185

原创 Android字体的适配问题

很明显,当Android系统设置了超大字体的时候,你的应用里设置的sp字体就会跟随系统变得很大,导致界面混乱有两个解决办法。1.Activity设置字体我们可以在BaseActivity中设置 @Override public Resources getResources() { Resources res = super.getResources(); Configuration config = new Configuration();

2021-02-07 14:59:08 311

原创 git之多人协作我是如何处理代码冲突的

多人负责同一个项目 难免会碰到这种情况,我会用下面两种情况去解决。一,最优的选择1.先执行git stash save mychange2.拉下最新代码git pull --rebase3.将暂存区代码取下git stash pop4.git终端会提示哪个类冲突了,去相应的类解决就行了二.如果你不小心直接commit 然后push后,去代码审核处发现冲突了 can not merge,那你应该这样做1.拷贝你现在的分支(A)到某个本地文件夹(copyA),然后把提交的记录给放弃ab

2021-01-31 00:42:01 223 1

原创 Greendao 3.2.0查询几个关键写法

loadAll():查询所有记录load(Long key):根据主键查询一条记录queryBuilder().list():返回:List列表queryBuilder().where(UserDao.Properties.Name.eq("")).list():返回:List列表queryRaw(String where,String selectionArg):返回:List列表...

2021-01-25 15:27:33 205

原创 Android Recyclerview轻松实现分割线ItemDecoration

每个Item下加View显然不是最好的选择,因为最后一个View你还得进行判断隐藏,采用ItemDecoration的方式才是最优解。1.添加依赖: compile 'com.yqritc:recyclerview-flexibledivider:1.4.0'2.设置ItemDecoration即可mRvSearchPageHistory.addItemDecoration(new HorizontalDividerItemDecoration.Builder(mContext)

2021-01-19 09:47:59 94

原创 Android SVG的使用

打开AndroidStudio之后选择该svg文件,然后正常引用就行

2021-01-18 18:24:27 66

原创 Android Textview点击闪屏穿透问题问题

最近在全局搜索里开发一个浏览器,碰到了底部点击新建窗口,闪屏,有时候点击事件还没反应按下去会显示主题,最后发现是对导航栏的处理问题,底部导航栏处理前需要判断是否可见,可见再隐藏,不可见就不用。 /** * 隐藏虚拟按键,并且全屏 */ public static void hideBottomUIMenu(AppCompatActivity context,Window window) { //隐藏虚拟按键,并且全屏 if (Build.V

2021-01-12 18:49:20 91

原创 Android Fragment处理返回

Activity中的有的Fragment由FragmentManager管理,Fragment嵌套的子Fragment也由FragmentManager处理,那只要拿到FragmentManager就可以用递归的方式处理了1、同样的先定义一个FragmentBackHandler 接口。public interface FragmentBackHandler { boolean onBackPressed();}2、定义一个BackHandlerHelper工具类,用于实现分发back事件

2021-01-12 18:07:17 82

原创 360 百度阿里 搜索Api地址

百度-淘宝-360搜索引擎搜索API百度(baidu)Api地址:http://suggestion.baidu.com/su?wd=设计&p=3&cb=window.bdsug.sugwindow.bdsug.sug({q:”设计”,p:false,s:[“设计之家”,“设计素材下载”,“设计签名”,“设计在线”,“设计师”,“设计英才网”,“设计软件”,“设计兵团”,“设计公司”,“设计说明”]});搜狗(sogou)Api地址:http://w.sugg.sogou.com/

2021-01-07 09:48:31 59

原创 Android AgentWeb webview onkey返回两次的问题

onkey这个方法里如果不加event.getAction() == KeyEvent.ACTION_DOWN,则会执行两次,导致返回两次 webView = mAgentWeb.getWebCreator().getWebView(); webView.setOnKeyListener(new View.OnKeyListener() { @Override public boolean onKey(View v, int keyCod

2020-12-30 17:26:43 186

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

原创 Android WebView和AgentWebview不刷新页面不闪屏隐藏头部或者某个标签

现在全局搜索需要加入这个功能,然而返回的地址却是带有头部百度和搜索框的,这些本来是可以通过tradeid进行客制化去掉,但是百度没抽出人来做,所以需要自己处理。如果我们在webview中的WebViewClient里的OnPageFinished方法中做的话会出现闪屏,而且调用时机也可能会延迟,造成打开页面后隔了几秒才隐藏网页头部,显然不是我们要的效果,而OnPageStarted方法调用隐藏也没用。后面找到WebChromeClient的onProgressChanged进行处理setWebChrom

2020-12-29 17:58:04 149

原创 Greendao的根据某个字段(非主键)插入去重以及根据某个字段删除对应的行条目

目前资料上greendao的删除基本都是根据主键删除的,如果我想通过里面一个字段比如name进行删除呢?下面是我对于全局搜索apk的一个greendao的小结。1.删除某个字段的整条数据简单封装下Greendao:GreendaoUtil.javapublic class GreendaoUtil { private volatile static GreendaoUtil ourInstance; private static String name = "search_his

2020-12-25 19:55:53 398 3

原创 EditText中imeOptions属性使用及设置无效解决

最近在做重做全局搜索相关的apk,包含本地的设置选项和百度的相关搜索,下面是软键盘相关。虽然通常输入法软键盘右下角会是回车按键但我们经常会看到点击不同的编辑框,输入法软键盘右下角会有不同的图标点击浏览器网址栏的时候,输入法软键盘右下角会变成“GO”或“前往”而我们点击Google搜索框,输入法软键盘右下角会变成 放大镜 或者“搜索”而决定这个图标的变换的参数就是EditText中的 android:imeOptionsandroid:imeOptions的值有actionGo、 actionSe

2020-12-24 11:40:28 113

转载 Android性能调优之Copyonwrite

写入时复制(CopyOnWrite)思想  写入时复制(CopyOnWrite,简称COW)思想是计算机程序设计领域中的一种优化策略。其核心思想是,如果有多个调用者(Callers)同时要求相同的资源(如内存或者是磁盘上的数据存储),他们会共同获取相同的指针指向相同的资源,直到某个调用者视图修改资源内容时,系统才会真正复制一份专用副本(private copy)给该调用者,而其他调用者所见到的最初的资源仍然保持不变。这过程对其他的调用者都是透明的(transparently)。此做法主要的优点是如果调用者

2020-12-21 10:49:51 41

原创 Android注解元注解详解之带你生成简易版Butterknife

首先什么是注解?@Override就是注解,它的作用是:1、检查是否正确的重写了父类中的方法。2、标明代码,这是一个重写的方法。1、体现在于:检查子类重写的方法名与参数类型是否正确;检查方法private/final/static等不能被重写。实际上@Override对于应用程序并没有实际影响,从它的源码中可以出来。2、主要是表现出代码的可读性。Override作为Android开发中熟知的注解,Override只是注解的一种体现,更多时候,注解还有以下作用:降低项目的耦合度。自动完成一些规

2020-12-14 16:24:35 48

原创 JAVA反射中的getFields()方法和getDeclaredFields ()方法的区别

关于获取类的字段有两种方式:getFields()和getDeclaredFields()。我们先来看看这两者的区别吧:getFields():获得某个类的所有的公共(public)的字段,包括父类中的字段。getDeclaredFields():获得某个类的所有声明的字段,即包括public、private和proteced,但是不包括父类的申明字段。同样类似的还有getConstructors()和getDeclaredConstructors()、getMethods()和getDeclared

2020-12-14 16:07:34 40

原创 Android R版本 MtkSettings和Telephony进程通信aidl

需要获取simunlockstate状态,而这个不由我们这边控制,在免于提Mtk case的情况下,通过Telephony获取这个值,telephony是个服务apk,不能通过android.bp引入,考虑到这个原因,我觉得通过aidl以telephony为服务器端,MtkSettings为客户端,进行跨进程通信。下面说下步骤:1.在服务器端新建aidl目录和文件,这里通过AndroidStudio去生成(New -> Aidl ->AIDL File)。生成完后记得rebuild一下,但是我

2020-12-01 09:57:21 198

原创 adb: failed to install .\MtkTeleService.apk: Failure [INSTALL_FAILED_INVALID_APK: Package com.androi

和往常一样:adb install -r .\MtkTeleService.apk.提示:adb: failed to install .\MtkTeleService.apk: Failure [INSTALL_FAILED_INVALID_APK: Package com.android.phone is a persistent app. Persistent apps are not updateable.]那么如何解决呢?1.获取root remount权限:adb rootadb

2020-11-30 15:52:33 248

原创 Git对本地修改情况的处理策略

如果在修改时发现修改错误,而要放弃本地修改时,一,未使用 git add 缓存代码时。可以使用 git checkout – filepathname (比如: git checkout – readme.md ,不要忘记中间的 “–” ,不写就成了检出分支了!!)。放弃所有的文件修改可以使用 git checkout . 命令。此命令用来放弃掉所有还没有加入到缓存区(就是 git add 命令)的修改:内容修改与整个文件删除。但是此命令不会删除掉刚新建的文件。因为刚新建的文件还没已有加入到 g

2020-11-27 15:08:21 55

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

kotlin+rxjava轮询白名单申请.rar

Android kotlin+rxjava延迟轮询实现进程白名单的添加,例子比较简单 ,一个activity类,一个工具类,导入了一些ku

2020-09-22

android蒙版(启动引导)

一款简单却炫酷的蒙版,赶紧下载下来研究。研究github上的结果,因为运行不了官网的demo,所写自己写了哥,功能具备

2017-09-23

Android属性动画的一些实例

主要参照hyman大神的博客写的一些例子,包含各种动画,在项目中也是可以用上的,但当然,还是用第三方的框架好点。

2017-09-25

Aidl跨进程通信

Android aidl的实现,里面写的很详细,可以作为aidl的参考

2017-10-08

空空如也

空空如也

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

TA关注的人 TA的粉丝

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