6 耳东_

尚未进行身份认证

加油!

等级
TA的排名 13w+

Android 获取屏幕高度,虚拟导航键检测

本篇文章主要总结一下在全面屏上获取高度的问题。获取屏幕高度一般 Android 上获取设备的高度都是通过 DefaultDisplay 的方式来获取的如下:public int getScreenHeight(Activity activity){ WindowManager manage = activity.getWindowManager(); Display disp...

2019-10-31 19:49:39

Android 判断是否有刘海屏

文档查阅了网上很多文章几乎都是抄的下面这些文档中的内容,所以就不详细说了,大家可以直接去看就可以了。androidP在androidP上google官方提供了标准的api来识别是否有刘海屏,以及刘海屏的宽高等,文档参考显示屏缺口支持非androidP非androidp不同的厂商提供了不同的API,这里只包含了目前国内市场主流的机型。可以参考他们的官方文档。...

2019-01-28 19:40:26

【ARouter】 跳转 Activity 过程分析

本篇内容主要分析一下 ARouter 的跳转过程——本篇只分析 Activity 的跳转过程。跳转ARouter 的简单跳转比如这样子 ARouter.getInstance().build("/main/mainActivityTest").navigation() 就实现了一个简单跳转,那么它的具体是怎么运作的呢,下面就一步一步来分析。生成跳转信息build在简单跳转的调用过程中...

2018-12-02 20:58:57

【ARouter】初始化过程分析

对于正常配置后的经过编译会在 app/build/generated/source/kapt/debug/包名 下生成至少三个类,分别为:ARouter$$Group$$组名存储某一组的路由映射ARouter$$Providers$$appARouter$$Root$$app用于初始化,将路由按组存储到一个 map 中。上面这一些类是在编译过程中生成的。应用打开时的初始化过程在 a...

2018-11-28 21:29:55

【ARouter】 ARouter 接入笔记

ddad

2018-11-28 20:45:54

Android TextView局部下划线及点击弹出popu

由于一些原因导致两个多月没有更新博客,从今天开始继续更新。最近在项目中遇到一个需求,产品要求实现一个可以部分点击的 TextView,可点击的部分需要有虚线下划线以及在点击区域弹出 Popupwindow,这里把我的实现过程记录下来。这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成...

2018-10-16 16:14:11

Android 检测 View 的可见性

目前遇到一个需求,为了增加应用中广告投放的精确度与有效程度,现在需要对 app 中广告位的展示情况做一个统计并上报。设计思路思路很简单,因为需要对多个广告位做统计,那么就封装出来一个广告的控件,然后在这一个空间里面统一的检测广告的出现次数,即曝光的有效程度。根据产品需求,要广告出现在屏幕中2秒以上才算是有效曝光,所以就要动态的来检测展示广告的 view 的可见性。而这个也是...

2018-08-03 00:48:08

Android 基于zxing的二维码扫描功能的简单实现及优化

由于项目中需要接入一下简单的二维码扫描功能,最终使用 zxing 来实现,把官方例子中的部分代码摘除出来做了简单的封装,并进行了一些优化。这里简单做一个记录。扫描二维码Android 中关于二维码扫描的库有很多,但是归根到底无外乎下面这几种实现方案:zxingZBar其中基于以上两者实现的比较知名的库有:QRCodeReaderViewBGAQRCode-...

2018-07-29 22:51:05

【爬坑】一次OOM爬坑之旅

记一次 OOM 引起的爬坑之旅。问题测试反馈首页在刷新的时候有偶尔崩溃的情况,但是情况描述的不是很清楚,因为不是能一直复现的。复现找到测试妹子要来出问题的手机自测。根据测试的描述既然是在刷新的时候崩溃,所以就一直刷新首页看看能不能复现,果然复现了出来,在进行多次刷新以后首页出现了崩溃,然后再尝试几次并且统计各种数据发现每到第 12 次刷新的时候就出现崩溃。崩溃日志:...

2018-07-27 21:34:23

【源码学习】window 的删除及更新过程

此类文章主要是用来记录学习源码的过程,更多的参考别人的分析过程自己去追踪源码,然后做下的记录。看 Android 源码是一个痛苦的过程,之前几次尝试都以失败而告终,这里把这个过程记录下来,算是对自己的一种激励。上一篇分析了 window 的添加过程,这一篇来继续分析 window 的删除和更新过程。和添加类似的,分析了添加的过程,删除和更新已经很明了了。删除和添加一样,也是通过...

2018-07-18 01:04:44

【源码学习】window 添加 view

可以知道的是 Android 中的所有视图都是通过 Window 来呈现的,Window 是 View 的管理者。向 Window 添加 View 是通过 WindowManager 来实现的。WindowManager 是一个接口,并且继承自 ViewManager。关于 ViewManagerpublic interface ViewManager{ public ...

2018-07-10 01:27:31

Android 面试总结【中级】-2018

从毕业至今经历了两家公司,都是比较小的创业型公司。目前因为公司的缘故(算是倒闭吧—停业清算)不得投入到轰轰烈烈的求职大军中来。面试经历不算丰富因为推掉了很多,没有BAT这样的大公司,不够也都不算是小公司了,自认为还是比较有代表性的。的东西吧大大小小的项目做过很多,技术也涉及到很多方面。本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Mar...

2018-06-27 00:57:31

Jni 内存泄露(Failed adding to JNI pinned array ref table (1024 entries))

问题重现 错误代码 解决办法 原因 问题重现 Failed adding to JNI pinned array ref table (1024 entries)在开发蓝牙模块升级的时候, 由于要传送的升级文件较大,而 BLE 模块一次传输数据大小有限制,因此需要拆包,并需要频繁的通过JNI调用so库来组装报文,结果在低版本手机测试时遇到Fa...

2018-06-06 16:14:01

Kotlin 使用高阶函数实现回调

lambda和高阶函数之前学习了lambda和高阶函数,然后在android开发中对onClick事件进行监听是一个很常用的功能,kotlin的常规实现如下:rootView.setOnClickListener{view->println("点击了这个ID=${view.id}的view")

2018-06-02 11:17:57

Bitmap 在内存中有多大?

占了多大内存?举个例子怎么计算的Bitmap的生成获取大小所以呢大小怎么算?网络图片大小占了多大内存?首先这里要明确的是占用内存图片大小以上两者是不同的,占用内存表示图片被加载进来以后占用的内存空间大小,图片大小则是图片在磁盘存储时占用的大小。两者之间有什么关系么?下面再讲。获取一个biemap占用多...

2018-05-31 14:25:29

JNI 引用第三方 so

概述 举个例子 编写JNI文件 编译MK文件 概述在Android开发中有时会遇到使用JNI调用C/C++函数库的场景。一般这个时候都是使用NDK将C/C++源代码编译出so文件,然后进行调用。但是有时候会遇到另外的情况:我们在NDK项目中还要再引入其他第三方的SO库这个时候该怎么编译呢?通过使用动态函数库的调用方法,直接包含其头文件,便...

2018-05-28 14:06:45

记一次首屏加载优化过程-动态路由提升加载速度

背景 现有路由 动态路由 Webpack 配置 路由配置 优化结果 背景之前分别从原生层面以及 H5 层面对 HTML 的加载过程进行了分析,确定出加载的耗时主要出现在渲染阶段,但是页面本身并不复杂,dom 的结构也很简单,应该渲染很快才对,所以又通过 chrome 的 timeline 来进行更详细分析的开发文档,结果如下图,可以确定出在一...

2018-05-28 12:17:48

记一次首屏加载优化过程-分析

由于首页页面打开的过程中白屏情况严重,要解决问题,首先要分析问题出在哪。监控加载过程获取 webView 加载过程中的各个阶段的耗时情况从源生层面分析分别在加载 webView 的 activity 的 onCreate 、onResume 方法中记录时间LogUtils.e("onResume::" + System.currentTimeMillis());对 we...

2018-05-28 12:03:37

Android 普通蓝牙学习笔记

Android 普通蓝牙学习虽然做开发有一段时间了,但是有关蓝牙方面一直接触的不多,正好目前有一个关于蓝牙开发的需求,虽然是用到的BLE和普通蓝牙有些区别,但是既然学习了就顺便把普通蓝牙也学习一下,也为了以后自己少走些弯路,先将这些学习笔记学习下来。官方文档本例的源码已经上传,查看源码需要的权限<uses-permission android:name="android.permission.BLU

2016-09-04 00:35:23

Android BLE蓝牙通讯学习

Android 4.0 蓝牙BLE学习在app应用的开发过程中,一般和蓝牙接触的不多,但是随着智能穿戴设备的发展,穿戴设备和手机关联的app越来越多,之前也是没怎么接触过这一块的东西,正好最近需要做一个和蓝牙有关的app,所以研究学习下,把应用的东西总结一下。介绍BLE是Bluetooth Low Energy的缩写,又叫蓝牙4.0,区别于蓝牙3.0和之前的技术。BLE前身是NOKIA开发的Wibr

2016-09-02 15:50:35

查看更多

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