自定义博客皮肤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 开发者

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

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

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

2021-03-19 21:26:59 1218

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

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

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

2021-03-15 11:22:39 230

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

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

2021-03-05 11:32:16 1066

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

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

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

2021-02-08 11:29:56 522

原创 Android字体的适配问题

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

2021-02-07 14:59:08 1208

原创 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 634 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 683

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

原创 Android SVG的使用

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

2021-01-18 18:24:27 235

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

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

2021-01-12 18:49:20 327

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

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

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

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

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

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

2020-12-29 17:58:04 644

原创 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 1268 3

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

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

2020-12-24 11:40:28 686

转载 Android性能调优之Copyonwrite

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

2020-12-21 10:49:51 222

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

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

2020-12-14 16:24:35 153

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

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

2020-12-14 16:07:34 209

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

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

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

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

2020-11-27 15:08:21 141

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

原创 Mtk Android(11) R版本 设置搜索加入条目

通用搜索Android 8.0 为“设置”菜单添加了经过扩展的搜索功能。本文档介绍了如何添加设置,以及如何确保正确地将其加入“设置”搜索的索引中。创建可编入索引的设置需要编入索引的每个“设置”片段都会实现 Indexable 接口,并且需要静态字段:public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER为您的片段进行设置以编入索引后,将其添加到以下位置中的 SearchIndexableResources:packag

2020-11-06 09:50:43 697

原创 2020Android进程保活的实现(附项目以及代码)

一.原因:比如一些聊天应用如果退出被杀死就收不到消息,或者金融类应用收到转账消息,应用被杀了就收不到通知二.现状:随着谷歌的不断升级改造我们知道,Android 系统会存在杀后台进程的情况,并且随着系统版本的更新,杀进程的力度还有越来越大的趋势。系统这种做法本身出发点是好的,因为可以节省内存,降低功耗,也避免了一些流氓行为。为此作为开发者的我们被老板们逼着炒碎啦心,各种办法尝试,今天为各位大佬带来一篇优雅的保活模式,那就是后台运行白名单。 下次被产品说「莫某某软件都可以保活,为什么我们不行!」的时候,

2020-09-10 05:49:01 1453 1

原创 AndroidStudio 3.6以后的视图绑定在fragment以及activity的用法不一问题注意下

在Activity中是 inflate = ActivityLoginBinding.inflate(getLayoutInflater()); setContentView(inflate.getRoot());fragment: View view = inflater.inflate(R.layout.fragment_sub_main, container, false); mFragmentMainBinding= Fragmen

2020-09-07 09:51:07 647

原创 升级Gradle 6.0以及AndroidStudio4.0的坑

1.butterknife不能用,变量的引用无法生效。这个可以用kotlin插件代替,我用的是as 3.6之后的特性解决这个特性对于include的布局需要多层调用即可,比如:activityRegisterBinding.include.imgBack

2020-09-04 12:12:20 680

原创 老项目由support到AndroidX移植问题

1、support.v4库升级Androidx后getFragmentManager方法便不能使用了,直接结果就是导致tablayout+viewpage的组合报错修改方法:需要activity继承FragmentActivity并且使用FragmentActivity内的方法getSupportFragmentManagerandroidx.fragment.app.FragmentManager内不再有getFragmentManager的方法,写个记录一下2、目前还有很多人在使用dagger

2020-08-11 18:43:28 262

原创 androidstudio 运行flutter一直Gradle

Running Gradle task ‘assembleDebug’ 如题,这个问题,很多博客是说将build.gradle里面的 google() jcenter()改成阿里云地址: maven { url 'https://maven.aliyun.com/repository/jcenter' } maven { url 'http://maven.aliyun.com/nexus/content/groups/public' }

2020-05-15 11:00:11 949

原创 华为mata30 5G无法连接Androidstudio

有个项目我想用android 10.1测试下,但是这个华为mata30 5G无法连接到as,查了几个方案,1.一个是该设备名字,无用2.打开仅充电选项,无用后来我不插拔数据线底部弹框不点仅充电点传输文件,然后就弹出是否信任此设备,我就知道成功了...

2020-05-15 09:06:02 1131

原创 flutter国内镜像配置以及环境变量配置

1.关于flutter的学习我是在flutter中文网看到了,这网站开头配置那块开头就来句这明显不是windows下的配置,其实是这样的:在windows下加两个环境变量:(是用户变量)PUB_HOSTED_URL https://pub.flutter-io.cnFLUTTER_STORAGE_BASE_URL https://storage.flutter-io.cn如图:2.第二部就是将flutter/bin添加到系统变量:更新环境变量要在终端运行 flutter 命令, 你需要添

2020-05-15 08:21:14 3319

原创 Win10系统C盘电脑彻底清理

目前自己Win10系统电脑C盘只剩下5G,卡得很,一般得我清理是告诉你用360或者腾讯管家去情侣,说实话,对于我这种追求极致的人来说,远远不够,狂阶我还把360卸载了,又占体积又卡,具体你可以打开服务-》后台查看,占用的我体积还是很大的。下面我带大家来做:1.点开右下角的框弹出这个这个界面,进入所有设置2.点击左侧存储,进入此界面3.点击 应用和功能 往下拉 最好按大小排列,选择性的清理,这个能够清除系统安装的应用,如Y空间,联想管家,各种内置游戏等,比360牛逼得多4.清理完软件和游戏再清理文件

2020-05-12 23:12:08 1703

原创 禁止浏览器自动跳转

当我们在浏览一些小说或者电影的网站时候经常会·出现刚进页面就跳转到其他页面这种情况,比如电影天堂,就有莫名的页面跳转,那我们怎么禁止这些跳转?以Internet Explorer为例:1.打开浏览器的 工具-Intenet选项2.从弹出的“Internet选项”对话框中选择“安全”选项,并在“选择要查看的区域或更改安全设置”下方的窗口中选中“Internet”,单击下方的“自定义级别”按钮进行...

2020-04-10 22:45:31 24795

原创 Android依赖框架下载速度缓慢以及Could not download kotlin-gradle-plugin.jar的问题

这个问题很显然是因为下载超时之类的,这个地址是国外的,我们可以改一下替换项目根目录下build.gradle中的 repositories { jcenter() }为: repositories { maven{url 'http://maven.aliyun.com/nexus/content/groups/public/'}参考:h...

2020-03-31 18:12:15 4904

转载 Kotlin中 !!. 跟 ?. 的区别和用法

在Kotlin中!!跟?都是用于判断空参数异常的?.意思是这个参数可以为空,并且程序继续运行下去!!.的意思是这个参数如果为空,就抛出异常下面给大家举个简单的例子,在JAVA中判断一个参数非空是这样写的:NullClass nullClass = null; if (nullClass!=null) { ullClass.nullFun(); }将这段代码转...

2020-03-27 15:48:06 726

转载 Android rxbus的构建使用

▲ 前言:事件总线的好处在于方便组件之间的交互,RxBus不是一个库,而是使用RxJava实现事件总线的一种思想。刚好项目中使用到了rxjava,相对于使用eventbus,使用rxbus来的更方便。▲ rxbus和eventbus相比较:RxJava 主要做异步、网络的数据处理,强大之处就是对数据的处理了,而对于处理完后的数据处理是一样的都是观察者模式来通知,也可以把 RxJava 进一步...

2020-03-26 18:28:35 1121

原创 Support库转入AndroidX

最近项目转入AndroidX,期间参考了几篇博客,做了一下总结:注意,转移AndroidX之前先备份下,但如果是版本控制的项目则不需要。1.执行迁移之前,请先将应用更新到最新版本。我们建议您将项目更新为使用支持库的最终版本:版本 28.0.0。这是因为,1.0.0 版本的 AndroidX 工件是与支持库 28.0.0 工件等效的二进制文件。2.必须将AndroidStudio升级到3.2以...

2020-03-26 14:44:45 375 1

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

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

2020-09-22

Aidl跨进程通信

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

2017-10-08

Android属性动画的一些实例

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

2017-09-25

android蒙版(启动引导)

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

2017-09-23

空空如也

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

TA关注的人

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