自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 资源 (4)
  • 收藏
  • 关注

原创 学徒浅析Android——Android原生下载机制针对0K大小文件下载异常的分析

本篇文章已授权微信公众号 guolin_blog(郭霖)独家发布 最近在进行一次测试用例中,发现测试手机在利用本地下载功能下载0K大小的文件时,进度条一直处于进度模糊状态中,虽然查看本地存储路径,发现文件已经存在,但是页面上并没有提示下载成功,此时只能对下载执行暂停或删除操作。最初只是怀疑是自身应用的问题,但是在试了自己的华为畅享5s(Android5.1)、联想S560(Androi

2017-12-10 21:21:54 1511 2

原创 学徒浅析Android——根本原因分析

一个问题,可以停留在表面,也可以深究到根源。我们常说的直接原因其实是表面原因,而根本原因是指出导致出现该差异、缺陷或风险的原因,因此根本原因可能不在业务中。针对系统级问题,最好的解决方式就是从根源解决。而针对根源进行的根本原因分析的一个特点是当出现问题时,不仅要解决业务问题,还要解决人员问题和组织问题。这里本文只从业务问题层面来分享下如何分析根本原因。为了推进根本原因分析,首先需要澄清要找出原因的问题,也就是重新定义问题。

2024-01-01 11:09:45 952

原创 ArkTs编译常见错误汇总(更新中)

ArkTs编译常见错误汇总(更新中),因为SDK版本更新后发现变动较大,遇到了不少编译问题,汇总记录下。

2023-12-23 16:53:21 1684

原创 Python往事:ElementTree的单引号之谜

最近在针对某款设备的界面xml进行更新过程中,被告知回稿的字串放在了一个excel文件中,而我要上传到服务器的界面用语是用xml文件封装的。再经过详细求证了翻译组提供excel文件的原因后,我决定用python来完成界面用语xml的更新,但是在使用ElementTree库的时候,却发现这个库有点小瑕疵。重新方案如下,先将源代码中的

2023-12-17 16:47:13 118

原创 HarmonyOS应用开发者高级认证(题库)

包80分

2023-11-26 19:23:20 5842

原创 学徒浅析Android——关于Handler的postDelay被立刻执行的问题

老生常谈的Handler还是会在工作中给自己惊喜。最近在一次日常的转测用例执行过程中,突然发现有个请求被立刻移除了。查看了下代码记录才发现是使用Handler#postDelay传入的延迟时间。

2023-03-19 22:48:36 460

原创 学徒浅析Android——斜体、依赖、NoClassDefFoundError

起这个标题是因为我想到了《死亡,爱,机器人》,看起来毫无关联的词汇,实际暗示着蛛丝马迹。最近在定位一个so引用问题时,就遇到了这种现象。异常日志很简单,如下所示:java.lang.NoClassDefFoundError: Failed resolution of XXXNoClassDefFoundError实际上就ClassNotFoundException。常见的类加载异常,如字面意思所说,没有从默认类路径中找到所需的类。实际上我一开始就说出了原因是什么,但是同事一句话让我不得不去证明他是

2021-03-07 13:26:19 506

原创 学徒浅析Android——从HandlerThread谈myLooper()和getMainLooper()

最近在一次线程扫描时,发现项目创建的大量HandlerThread都没有去执行手动释放操作。这也引起了我的好奇,虽然可以依赖垃圾回收机制,但我们也一直被灌输一种思想,垃圾回收不是实时的,Handler是容易内存泄漏的。所以你知道要去调用remove,要去配置弱引用。但当我们使用HandlerThread时,似乎因为它在主线程之外就不再顾虑,那真的是这样吗?围绕这个问题,就需要探讨两个基本问题:1、为什么要执行HandlerThread#start()2、myLooper和getMainLooper(

2021-01-10 08:44:55 1700

原创 学徒浅析Android——系统广播和广播权限保护

大家在学习安全编码规范中,会发现针对不想过度暴露的四大组件,都建议使用自定义权限的方式基于保护。尤其是可以作为通信方案的广播。一个规范的暴露广播配置方法如下:<permission android:name="test.test" android:protectionLevel="signature"/><uses-permission android:name="test.test"/><receiver android:name=".TestRecei...

2021-01-09 13:44:22 1841

原创 学徒浅析Android——基于Microsoft的OAUTH2.0认证(三)

第三章 MSAL API和Microsoft API的使用本章围绕Microsoft Authentication Library的使用讲述如何调用Microsoft API。目录小节如下:1.1 MSAL库常用API的介绍1.2 scope的配置1.3 GRAPH库的使用1.4 手动请求Microsoft API其他相关文章:基于Microsoft的OAUTH2.0认证(一):基本概念梳理基于Microsoft的OAUTH2.0认证(二):MSAL库的引用和定制基于Mi

2020-10-12 15:20:43 1331

原创 学徒浅析Android——基于Microsoft的OAUTH2.0认证(一)

之所以会做Microsoft的OAUTH2.0对应,完全是因为这个通知,时间结点是2020年10月13号,我在8月初才被告知这件事。当时并不觉得是个难点,毕竟微软是个大厂,大厂推出的服务变动都是有指导文件,抱着这份信任,开始着手对应这个变动,但也因此一步一步走向深渊。为了对后来者提供必要的帮助,确保不再走我走过得坑,所以写下这个系列,希望对大家有所帮助。本章将介绍跟Exchange、outlook相关的基本概念和术语,理解了这些术语和概念,将帮助你更直观的查阅Microsoft的文档。其他相关文章:基于

2020-10-09 11:27:06 602

原创 学徒浅析Android——基于Microsoft的OAUTH2.0认证(二)

MSAL库的引用和定制本章围绕Microsoft Authentication Library讲述两件事:1、如何引用MSAL库;2、如何对MSAL库进行二次开发。其他相关文章:基于Microsoft的OAUTH2.0认证(一):基本概念梳理基于Microsoft的OAUTH2.0认证(三):MSAL API和Microsoft API的使用基于Microsoft的OAUTH2.0认证(四):常见错误归纳1. msal库的引用...

2020-10-09 11:22:37 1104 4

原创 学徒浅析Android——chromium升级引起的em属性变更

最近在进行一项webview的展示测试时,用到了甲方提供的一个测试html,这个html中包含了最基本的html标签。本以为只是走走过场,没想到测出了一个bug——<ul>标签对应的小圆点不能显示了。并且这个测试html用手机搭载的chrome加载时是显示正常的。好在webview不会有修改样式这种逆天的本领,所以把调查重点放在了添加css的操作上。一番排除法后,发现是em这个属性搞的鬼。由于对html知之甚少,特意请教了前端大佬,现把em的变化跟大家分享下。根据w3c上的介绍,e.

2020-05-27 00:21:25 309

原创 学徒浅析Android——Role带来的角色扮演

在Q以前,如果我们的应用是一个短信或拨号之类的特殊应用,想要通知用户将我们的应用替换掉手机自带的预搭载应用,TelecomManager.ACTION_CHANGE_DEFAULT_DIALER和Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT就可以帮我们实现。但在Q上,google改变这种处理方案,并推出了一个新特性——Role/RoleManager。从文档介绍来看,是提供管理应用服务的,最常见的就是默认应用切换功能。有了新的替代API,那么原先的T...

2020-05-18 20:30:38 4738 9

原创 学徒浅析Android——Android Q隐藏在Lock中的小bug(一)

距离上一篇文章过去半年了,要不是最近的一次偶然搜索,都快忘了这个账号的密码。谷歌还在一如既往的更新,我还在迷眼乱花中摸索。这不,最近在适配Android Q时,发现了一个源码造成的bug,并且这个bug是AndroidQ变更造成的。具体的问题描述如下: 解锁模式为password,在解锁页面输入5次错误密码,然后熄灭屏幕,等待30秒后,再进入解锁页面,此时输入框无法获...

2019-12-13 23:10:07 417 1

原创 学徒浅析Android——Android 8.0 Lock解锁流程

解锁流程1、Android8.0的Lock解锁处理统一由LockPatternChecker.checkPassword实现,LockPatternChecker.checkPassword提供了两个回调接口,其中onEarlyMatched()处理验证成功,onChecked处理验证失败。2、密码验证成功后,立刻执行KeyguardSecurityCallback#dismiss(tru...

2019-03-26 22:46:12 2044

原创 学徒浅析Android——系统文字大小的适配

Android系统的文字设置变更会影响到应用页面的展示,一般的APP都是禁止跟随系统文字设置进行变化的。1、针对系统字体变更的应对方法:   (1)可以通过在AndroidMainfest.xml中配置configChange="fontScale"规避Activity生命周期的重启,当系统设置发生变更时,会引起当前应用的重启,声明周期变更为onDestroy()-&gt;onCreate()-&...

2018-07-01 10:41:45 1009

原创 学徒浅析Android——Android 8.0(O)后台服务的限制和变化

Android 最近几版的特色主要集中在省电和后台管理上,O的发布,对Service和Broadcast又近一步加强了管束。主要可概括为如下两点:      1、后台应用不被允许创建后台服务,必须通过JobScheduler或者Context.startForegroundService()进行创建      2、特定的隐式广播不再被允许启动,必须通过JobScheduler调用或者显式注

2018-07-01 10:19:58 5568

原创 学徒浅析Android——PreferenceActivity在Android 8.0和 7.0上细微变化

    日前在利用PrepertyActivity配置设置页面时,出现了一个IllegalArgumentException崩溃,这个崩溃只在8.0系统的手机上出现了,在7.0及以下的系统中不会出现,后来经过追根溯源,发现原因是Android8.0的API变更导致的,先把分析过程分享一下,希望能帮助到有同样问题的同学,当时触发的崩溃如下:java.lang.RuntimeException:...

2018-06-24 13:10:58 774

原创 学徒浅析Android——从setContentView()角度分析View、Window、Activity三者关系

本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布参考码源:Android Oreo 8.0.0工具:Layout Inspector 我们在Activity的onCreate()方法中设置setContentView(),但是一直不明白其中的原理,正好公司在开展技术交流活动,分到的课题是View、Activity、Window的关系,借这个机会梳理一番。Activity生命周期的...

2018-04-06 23:34:52 7713 3

原创 学徒浅析Android——getDrawingCache()返回为NULL的原因

本篇文章已授权微信公众号 guolin_blog(郭霖)独家发布             在针对WebView使用getDrawingCache()进行当前屏幕截图时,发现返回的是NULL,同时在控制台看到logcat提示了一条异常信息,意思就是当前视图大小已经超过了缓存容量。内容如下:02-01 14:21:33.512 3461-3461/com.example.sample.job W/Vi...

2018-02-08 23:33:49 8853 2

原创 学徒浅析Android开发——windows64下FFmpeg编译问题汇总

最近在编译FFmpeg的过程中着实遇到了一堆问题,FFmpeg其实更适合在LINUX环境下进行开发和封装,因为它所依赖的编译工具和功能扩展插件在LINUX环境下更容易配置。而自己是在windows64环境下进行的编译工作,着实给自己找了不少事干。下面分享下自己在windows64环境下FFmpeg封装过程中遇到的编译失败问题,以供交流。先说明一下我的编译环境配置:系统环境:windows7

2018-01-25 18:51:08 3261 6

原创 学徒浅析Android——Android7.0(N)对于自定义证书和非CA机构证书的适配校验

针对Android N 证书校验规定的适配方案

2017-10-19 21:49:54 6532 3

原创 学徒浅析Android开发——通讯录实时监听的设计实现

本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布大家在使用微信的过程中,可以发现微信的通讯录可以和手机通讯录保持一致的增删变化,这点特性属于应用的易用性范畴,今天就来讲讲如何实现该功能。     通讯录涉及到的表统一集中在contacts2.db中。其路径如下: /data/data/com.android.providers.contacts/datab

2017-03-22 22:07:26 2515 5

原创 学徒浅析Android开发——SO文件的混淆

.so(SharedObject)作用等同于windows环境下的.dll(dynamic link library)文件,我们在引用第三方SDK时,也会遇到需要调用相应的.so文件的情况,.so文件本事更多的是集成公共处理方法,当然有事也会用来保存重要的数据信息。对于应用的编译与反编译过程中,本地混淆一直是有效的方法。对于.so文件,同样也适用于混淆,.so文件虽然在使用破解工具IDA打开后

2017-02-05 14:46:15 7307

原创 WebView与JavaScript交互的一种可行性方案

WebView提供的网页和本地交互方式十分简单:    setJavaScriptEnabled(true);addJavascriptInterface(Object obj, String interfaceName)PS1;一个自定义的接口名和一个用来JS调用的方法对象,就可以搭建一个JavaScript桥接接口。当然,简单就意味的着有漏洞,所以才有了后来的反射攻击PS2,and

2016-12-23 07:14:08 545

原创 学徒浅析Android开发:杂谈——仿QQ列表左右滑动效果

本篇文章已授权微信公众号guolin_blog(郭霖)独家发布 ListView可以说是最常用的控件了,所谓在平凡中创建不平凡,各种listView的衍生版本层出不穷。在商业应用中,一个item上堆放的信息不能太多,item本身的作用在于提供给用户快速选择的权利,信息堆放太多,反而无法让用户快速决定,所以简洁明了才是真。但是对于一些在场景中必要的功能按键,就需要找到合适的放置位置,尤其是现

2016-07-08 23:20:41 2067 8

原创 学徒浅析Android开发:杂谈——WebView的url跳转时方法执行顺序

在实际项目开发中,我们用到WebView的场景,大多是在对接协议、第三方应用或网页时出现。对于页面加载,WebView没有自带等待效果。所以,需要我们去自定义各种带进度条的WebView,网上相关的例子也是不胜枚举,今天我们就来谈谈一条地址请求在WebView中的跳转问题:WebView中有两个工具类负责管理网页各种行为:WebChromeClient和WebViewClient。分别通过se

2016-07-08 23:07:09 5885

原创 学徒浅析Android开发:第十四讲——Frame动画的滚屏操作

package com.example.scrollview;/** * @author Arthur Lee * @date 08/22/2014 * */import android.os.Bundle;import android.app.Activity;import android.content.pm.ActivityInfo;import android.view.M

2014-08-31 08:27:57 767

原创 学徒浅析Android开发:第十三讲——Tween动画

今天小编给大家介绍一下Android中动画的制作,动画就是讲静态的图片按照一定的次序,在短时间中展示,所以现在主流动画的帧数为24帧和30帧(即一秒播放24张静态图或30张静态图)。Android动画的制作分成两大类,一类是Tween动画,一类是Frame动画。Frame动画就是按照帧数播放静态图片。今天小编给大家介绍的是Tween动画,用Android提供的Amination类来对某些图片实现一

2014-08-16 08:02:45 641

原创 学徒浅析Android开发:第十一讲——ListView嵌套问题的特解

经过一段时间的潜伏,小编我终于有

2014-08-11 18:43:06 828

原创 学徒浅析Android开发:第九讲——SpannableString,让文字活起来

package com.example.demo_tabwidget;/** * @author Arthur Lee * @time 07/13/2014 * */import org.xml.sax.SAXException;import android.os.Bundle;import android.app.Activity;import android.content.

2014-07-20 10:31:16 803

原创 学徒浅析Android开发:第十讲——文字剪切效果

Android提供了C

2014-07-20 08:56:05 683

原创 学徒浅析Android开发:第八讲——TabWidget标签制作

TabWighet

2014-07-13 17:39:20 609

原创 学徒浅析Android开发:第七讲——数据存储之SQLite

其实在Android开发的过程中,SQLite的使用频率

2014-06-14 22:54:06 737

原创 学徒浅析Android开发:第七讲——数据存储之SharedPreferences

Android提供

2014-05-30 23:27:59 843

原创 学徒浅析Android开发:第六讲——屏幕分辨率自适应

作为当今生活的bixuepin

2014-05-29 07:39:35 703

原创 学徒浅析Android开发:第四讲——ImageView图片你的控制

这是

2014-05-27 17:38:10 860

原创 学徒浅析Android开发:第五讲——Handler和Intent的是传值流程

五一过完,盼六一,在gan

2014-05-27 13:43:39 2088

原创 学徒浅析Android开发:第三讲——Dialog的常用方法介绍(二)

jing

2014-05-01 17:29:36 791

msal-1.5.0.zip

针对microsoft-msal-1.5.0版本的修改,将内部androidx的引用切换成android_support的引用,已实现对旧版应用的支持

2020-10-08

仿QQ列表左右可滑动显示隐藏布局的item

列表的item可以左右滑动,同时配用开关可自行关闭,左右隐藏的布局可以自由设置。如果有疑惑,可以留言交流

2016-06-26

Android滑屏及相关效果Demo

本Demo配合学徒讲义http://blog.csdn.net/lz8362/article/details/23201497前四讲

2014-05-29

Android屏幕自适应Demo

小编在以前开发过程中,都是通过运用Layout的weight属性来设计页面的。后来小编无意中,在网上发现了一高手的文章,年代久远,很抱歉忘记了它的地址,但是小编保留下了它的代码,现共享出来。

2014-05-29

空空如也

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

TA关注的人

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