3 小蜗牛在漫步

尚未进行身份认证

做一个兴趣广泛,有情趣的工程师

等级
TA的排名 4w+

Android来电屏幕亮屏解锁

做即时通讯软件,当有语音或视频来电时,需要默认亮屏解锁就需要下面的操作了 getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED //锁屏显示 | WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD //解锁 ...

2020-04-27 13:27:21

WebView加载HTML代码适配问题

1、WebView不会自动换行,它会把连在一起的字母当成一个表情或者单词,或者,当遇到一个完整的URL链接时,会强制把URL放在一行,导致WebView可以左右滑动解决方法:这中问题不是WebView设置能够解决的,我们需要改动HTML的代码,在返回的HTML代码前直接拼接下边代码: //就是有时候web view不会自动换行,它会把连在一起的字母或者表情当作是一个单词, //...

2020-04-26 14:37:58

webrtc通信流程图

webrtc通话过程:如果是语音通话,首先通过配置信息,判断是否开启webrtc功能。 如果开启了或者是视频通话,拨号方会通过本地数据库获取接听方应用平台类型、版本号信息。现在只有在应用是Android 以及Android版本号是大于等于241才能够使用webrtc功能。如果本地没有保存对方版本信息等,通过接口获取并以json格式包存到本地。 拨号方首先以cmd命令的形式通过si...

2020-03-31 17:27:31

webrtc介绍

先了解几个概念:WebRTC 全称是 Web Real-Time Communication,即网页即时通信ICE(交互式连接建立的协议): ICE 的工作是找到连接两个对等体的最佳路径, ICE 可以执行直接连接ice算法是寻找最低等待时间的路径去连接两端,通常采用以下顺序寻找:1.直接的UDP连接 (在且仅在这种情况下,一个STUN的服务器会被用来查找主机端面向网络的地址)。...

2020-03-31 17:18:18

读取本地视频文件时间

/** * 获取本地视频时长 * * @return */ public static int getLocalVideoDuration(String videoPath) { int duration; try { MediaMetadataRetriever mmr = new Med...

2020-02-18 15:39:44

android studio引用java8后编译报错解决方法

1.在项目的build.gradle(Project)文件中添加 dependencies { classpath 'me.tatarka:gradle-retrolambda:3.6.1'//这个是重点 }2.在主 module (app) 的 build.gradle 里配置apply plugin: 'me.tatarka.retrolambda'//这个...

2020-01-21 13:36:40

Android 仿微信Webview加载网页进度和失败重试

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" style="@style/WHFu...

2020-01-17 14:09:08

EditText不跟随输入框弹出

EditText最外面布局添加android:fitsSystemWindows="true"即可例如:<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height...

2020-01-06 10:55:37

使用Dialog状态栏变黑问题

Window window = getWindow();WindowManager.LayoutParams lp = window.getAttributes();lp.width = WindowManager.LayoutParams.MATCH_PARENT;lp.height = WindowManager.LayoutParams.MATCH_PARENT; // 如果将高...

2020-01-02 16:23:09

抓取日志到电脑桌面(可抓底层错误)

adb logcat -v time > C:\Users\wahaha\Desktop\crach1.log

2019-12-18 12:26:46

Android动态权限申请

这个工具类优点:可以在能拿到Context的任意地方去申请权限,不用依赖activity的onRequestPermissionsResult回调方法获取返回结果。 //可以一次申请一个或多个权限,而且只需下面这一段代码就行了,//不需要在其他地方额外再加代码,很简单有木有 AppPermissionUtil.requestPermissions(this, new Str...

2019-12-06 12:28:11

添加忽略文件

.gitignore文件下添加*.iml.gradle/local.properties/.idea/workspace.xml/.idea/libraries.DS_Store/build/captures.externalNativeBuildgradle*.imlgradlewgradlew.batlocal.propertiesbuild.idea.g...

2019-12-04 11:26:44

Android studio下载第三方库下载不下来,或者很慢

allprojects { repositories {// maven{ url'http://maven.aliyun.com/nexus/content/groups/public/' }// maven { url 'http://developer.huawei.com/repo/' } maven { url 'https://...

2019-12-04 11:04:37

热修复成功了需要杀死进程,重启APP,方法如下

public void restartApp() { //启动页 Intent intent = new Intent(OuYuBaseApplication.getBaseApplication(), SplashActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); ...

2019-11-07 16:50:03

Could not get resource 'https://jcenter.bintray.com/com/

根目录的build.gradleallprojects { repositories { maven{ url'http://maven.aliyun.com/nexus/content/groups/public/' } maven { url 'http://developer.huawei.com/repo/' } jcente...

2019-10-28 16:16:36

Tinker热修复使用流程和注意事项

2019-10-25 18:56:33

Sophix及热修复原理介绍

Sophix相关书籍深入探索Android热修复技术原理这本书主要讲解了Android的热修复中的热部署,冷部署以及资源和so库的修复技巧。全文主要讲Sophix应对以上四个方面的技术解析,不管是自家产品还是业界其他方案的横纵对比,Sophix技术目前都是最优的。补丁小,合成不占太多空间和性能。 对代码的侵入小,对native代码的hook也精简,做到最大兼容。 支持的修复范围广。支持...

2019-10-22 16:16:30

为什么选择Tinker作为热修复方案?

修复这种非官方支持的非常规开发方式,在采用前一定要权衡清楚其作用与代价。一. Java层热修复方案由于Native层的热修复方案在兼容性和稳定性上存在缺陷因而此处不讲, 在Java层的做法主要有两种1. 优先查找补丁Dex优先查找补丁Dex原理将修改过的类汇集成一个Dex,在加载类时让ClassLoader优先加载修改过的类.方案基于ClassLoade...

2019-10-22 16:13:53

踩坑热修复框架Tinker

Tinker是什么Tinker是微信官方的Android热补丁解决方案,它支持动态下发代码、So库以及资源,让应用能够在不需要重新安装的情况下实现更新。当然,你也可以使用Tinker来更新你的插件。为什么使用Tinker当前市面的热补丁方案有很多,其中比较出名的有阿里的AndFix、美团的Robust以及QZone的超级补丁方案。但它们都存在无法解决的问题,这也是正是使用Tinker的...

2019-10-18 18:11:41

Android代码规范

1 命名规范命名规则大驼峰命名(UpperCamelCase):每个单词的第一个字母大写,其他字母小写。 小驼峰命名(lowerCamelCase):如果仅有一个单词,那么所有字母全部小写,如果是两个及以上的单词组成的名称,那么除了第一个单词是全部小写外,其他但是的首字母大写,其他字母小写。 所有的命名都应该以字母(A-Z或者a-z)、美元符($)或者下划线(_)开始; 首字符之后可...

2019-10-15 10:17:37

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。