- 博客(57)
- 资源 (22)
- 问答 (1)
- 收藏
- 关注
原创 Android debug调试
1. 准备工作准备工作,为了防止调试过程中应用被系统AMS干掉,先把开发者选项中的【显示所有应用程序无响应】开关打开,不打开的情况下断点调试过程中应用进程很容易挂掉。不同厂商机型该开关名称不完全相同,但是大致都是这个意思,去开发者选项,应用相关的部分可以找到。...
2022-01-01 22:57:04
2305
原创 java 枚举
java 5引入了枚举,enum和class以及interface属于同级别的存在,我们在开发中使用类和接口比较多,使用枚举的情况比较少,下面介绍一下枚举。枚举是将所有可能的情况一一列举出来,说明要描述的对象个数是有限的,例如:一年有12个月,一周有7天等。1. java中枚举的定义java中使用enum关键字定义枚举类,枚举类的实例对象要求一一罗列出来,对象间用“,”隔开,最后一个对象建议用“;”结束。可以有构造方法,必须是私有的,默认也是私有的,可以像其它类一样定义方法,成员变量,定义抽象方
2021-05-29 23:48:58
306
2
原创 systrace抓取方式
1. Android Device MonitorAndroid SDK安装目录,tools文件夹里面有monitor启动方式,双击monitor.bat启动在android device monitor窗口中点击systrace图标即可开始抓取抓取配置设置一下,点击ok就可以开始抓取了点击ok之后,赶快操作手机复现问题,抓取后的trace.html文件可以直接双击打开2. “系统跟踪”应用“系统跟踪”应用是一款用于将设备活动保存到跟踪文件的 Android 工具。在搭载
2021-05-16 16:56:57
1393
2
原创 一次遍历,从一个单向链表中删除倒数第n个节点
今天下午腾讯面试考了一道算法题:要求从一个单向链表中删除倒数第n个节点,要求最多只能遍历链表一遍。面试时我只是给出了思路,晚上画图编码归纳整理记录一下。思路在上图已经表达的很明确了,其实解题的关键点是利用好n,我们把n当作一把尺子从链表头移动到链表尾后,尺子的左端指的就是我们要删除的倒数第n个节点。下面贴一下代码实现: /** * @param head 链表头节点 * @param n 要删除的倒数第n个节点,数字n * @return 删除倒数第
2021-03-23 23:31:06
425
原创 Android Studio Build Output控制台输出乱码解决
Android Studio版本升级到4.0之后,出现Build Output控制台输出乱码的现象。该情况在Android Studio版本3.6及以上就会出现。解决方法:点击Android Studio 菜单栏Help 下拉菜单找到 Edit Custom VM Options...选项。打开studio64.exe.vmoptions 文件,输入-Dfile.encoding=UTF-8关闭studio,重新打开即可。studio64.exe.vmoptions 文件所
2020-10-17 17:15:05
19267
7
原创 Failed to resolve: com.android.support:appcompat-v7:25.3.0
问题场景:Android Studio版本升级之后,Build之前正常的项目失败(用2.2.3版本正常编译的项目使用4.0.1版本的studio编译失败)。报错如下:Failed to resolve: com.android.support:appcompat-v7:25.3.0Add Google Maven repository and sync projectShow in Project Structure dialogAffected Modules: app根据提示需要添加go
2020-08-01 14:20:37
1327
2
原创 Android开发中你是怎么查看sqlite数据库的
Android内置了sqlite数据库,我们在Android开发中想看自己的应用中sqlite数据库或者想查看别的应用数据库表中都有哪些内容的时候,老铁们,你们都是怎么操作的呢?下面介绍几种比较通用的查看数据库的方式。1. 使用Android Studio中的插件查看数据库,例如SQLScout。安装好SQLScout插件之后,在View → Tool Windows → 可以找到 SQLite Explorer我们想查看某个应用的数据库文件,怎么操作呢?应用数据库文件目录 da
2020-06-27 16:29:06
30650
4
原创 Android Studio生成patch和使用patch
1. 生成patch选择想保存的patch文件的位置,点击ok保存patch文件。至此patch文件已经生成了(打patch成功了)。2. 使用patch
2020-04-25 17:44:56
6965
原创 Android多线程操作操作对象出现空指针问题
在android中经常会有一些多线程操作同一对象的问题,经常会发生空指针的情况,尤其是跑monkey测试时。下面写点伪代码举例说明一下://已知mHandler为成员变量;if (mHandler != null) { mHandler.xxx(); mHandler.yyy();}上面的代码,大家都很熟悉,测试跑monkey出现了NullPointerExcep...
2019-12-25 00:28:04
2279
原创 等额本金计算公式解析
等额本金是一种贷款的还款方式,因其把贷款总额在还款期内等额划分而得名。每月偿还同等数额的本金和剩余贷款在该月产生的利息。等额本金每月还款由两部分组成(两部分加在一起)1.固定数额的本金(贷款总额/贷款月数);2.剩余贷款在该月产生的利息((贷款总额 -已还累计本金)*月利率)。下面举例详细解释这两部分例:住房公积金贷款总额220000元,贷款月数60个月,年利率2.75...
2019-11-21 18:10:53
5342
原创 Android正方形View
在Android开发中有时候我们需要方形的View,即宽高相等的View,一般需要正方形的ImageView的情形可能会更多一些。下面介绍自定义正方形的View(ImageVIew也是一样)。定义一个SquareView继承View,重写构造方法。重点是重写onMeasure方法。@Override protected void onMeasure(int widthMeas...
2019-11-15 14:34:09
1597
原创 Android AsyncTask 深度解析
Android 中耗时操作是在子线程中完成的,子线程不能更新UI,于是便出现了大家熟悉的异步消息处理机制Handler,Handler把在子线程中创建的Message对象发送到消息队列中,经由Looper轮询取出再交由Handler中handleMessage()方法处理。Handler机制完美解决了子线程中有数据却不能更新UI的问题,但是创建Handler对象、重写handleMessage()...
2019-10-17 16:04:42
276
原创 Android获取App当前页面的Activity名称
Android开发过程中我们经常会有这样的需求:想知道某个App的某个页面的Activity是什么?方法1.adb命令获取该页面的名称adb shell "dumpsys window | grep mCurrentFocus"adb命令获取比较简单直接(对于获取单个页面比较方便)方法2. Androidstudio 的Layout Inspector获取打开android...
2019-10-14 19:46:12
7109
原创 钉海神针软件安装时提示解析安装包错误
钉海神针软件是一款自动打卡神器,定闹钟就可以自动打卡,不需要虚拟定位,也不需要root,安全稳定,是一款很不错的自动打卡工具,钉海神针软件免费试用,钉海神针点击下载 。扫码安装钉海神针但是有些朋友安装钉海神针发现安装错误,提示大致如下(不同机型基本类似)。这是为什么呢?并不是钉海神针软件安装包错误,而是钉海神针软件需要安装到Android 7.0及以上系统版本的手机上,您安装钉海...
2019-01-18 15:53:50
1286
原创 QQ邮箱授权码
QQ邮箱大家都很熟悉,今天我们聊一聊QQ邮箱授权码。授权码是QQ邮箱推出的,用于登录第三方客户端的专用密码。适用于登录以下服务:POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务。温馨提醒:为了你的帐户安全,更改QQ密码以及独立密码会触发授权码过期,需要重新获取新的授权码登录。我们如何获取QQ授权码呢?下面图文并茂手把手地教您获取授权码点击...
2018-09-12 17:38:01
17460
1
原创 多选题评分算法原理
昨天复习位运算时突然来了灵感(自己悟出了一种判断多选题对错的方法),自我感觉很巧妙,绝对是原创(不知道以前有没有人想到过),很兴奋于是整理如下:先介绍一下多选题常用评分规则:1. 全部选对得满分;2. 少选并且没有选错误选项得一半分;3. 多选错选(只要选择了错误选项)不得分。下面一张图是我最简单的想法(脑子里闪出的灵感)我让ABCD与8421分别一一对应对于多选题目,它的结果共有15种(不...
2018-03-08 16:15:16
23343
9
原创 Android monkey 命令详解
monkey 是一个运行在模拟器或者Android设备中可以产生类似用户点击、触摸、手势以及一些系统级的伪随机事件流的程序。我们可以通过命令让monkey向模拟器或者Android设备发送伪随机事件流来对我们开发的App进行压力测试。monkey的基本用法:adb shell monkey [options] adb shell monkey 为固定语句, 这里是指让monkey向系统发
2018-01-11 17:18:25
31270
2
原创 Android 8.0安装apk
前一段时间在做App版本更新时,使用Android 8.0的手机测试发现一个问题:安装包下载完成之后,屏幕闪了一下并没有跳转到安装界面,使用8.0以下的手机并没有这个问题。Android 8.0 Oreo 中,Google 移除掉了容易被滥用的“允许位置来源”应用的开关,在安装 Play Store 之外的第三方来源的 Android 应用的时候,竟然没有了“允许未知来源”的检查框,如果你还是
2017-11-21 16:38:50
32593
6
原创 求丑数(判断一个整数是否是丑数)
昨天面试时遇到一道上机题:我们把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。习惯上我们把1当作是第一个丑数。定义一个方法判断一个整数是否为丑数。我的思路:让这个数 a 分别除以, 模以(取模,取余数)2,3,5得到商和余数如果三个余数都不等于0 ,则该数肯定不是丑数如果其中有一个余数为0,则用该余数对应的商(除以2,3,5得到...
2017-09-28 20:45:49
8037
原创 Android ijkplayer的使用解析及播放器的制作
ijkplayer是Bilibili开源的一款功能强大的播放器,支持本地网络播放,新版还支持https和直播功能。下面介绍如何快速使用这款功能强大的播放器:1. 添加so库2. 添加依赖3. 加入demo中必要的类4. 使用ijkplayer播放视频以上便是快速高效集成ijkplayer的步骤,下面分别详细介绍:1. ijkplayer官方提供的下载地址 https://github.com/Bi...
2017-08-18 20:30:57
17242
2
原创 Android 自带描边颜色渐变炫酷进度条
上图是我在PhotoShop中做出的进度条效果图,这张图充分阐释了本篇自定义进度条的精髓!在Android中实现该进度条的原理:(和ps中作图原理一样,理解ps中的图层便懂得了如何在android中实现该进度条)1. 画第一个圆角矩形作为进度条的最底层(描边层)2. 画第二个圆角矩形作为进度条的第二层(背景层)盖在描边层之上3. 画第三个圆角矩形作为进度条的最外层(进度层)盖在背景
2017-07-13 11:06:30
3302
原创 Android 设置应用的底部导航栏(虚拟按键)背景颜色
Android手机机型种类繁多,但是虚拟按键也就是底部的导航栏,不外乎两种设计方式,一种是作为虚拟按键设计到屏幕内部,一种是作为系统按键设计到屏幕外面。对于按键在屏幕内部的机型,因为虚拟按键也是屏幕内容的一部分,它也实际占据屏幕一定的高度,在系统应用中虚拟按键默认呈现的都是透明的背景色,但是在用户应用中如果未设置虚拟按键的背景颜色,它默认呈现的多为黑色。但是我们可能
2017-07-10 11:03:54
60657
1
原创 Android 7.0安装apk
在做应用版本更新的时候使用Android 7.0的手机测试发现一个问题:下载完成安装包之后,不能跳转到安装界面,使用7.0以下的手机没遇到这种情况。对于面向 Android 7.0 的应用,Android 框架执行的 StrictMode API 政策禁止在您的应用外部公开 file:// URI。如果一项包含文件 URI 的 intent 离开您的应用,则应用出现故障,并出现 FileUr
2017-07-04 14:05:13
6582
4
原创 如何改变图片的尺寸大小得到一张缩小后的图片
声明:本篇博客和代码无关,请不要误解。在平时开发过程中,总会需要一些特定大小的图片,一般设计师会给我们提供,但是有时候我们有一张大图,只是想得到一张它的缩小版,我们还让设计师帮我们,虽然也可以,但是我觉得这种简单的操作我们程序猴能够自己解决更好一些。在工作或者生活中我们经常会遇到需要把一张图片缩小多少倍或者改为指定大小的需求,遇到这种情况我们该如何处理呢?1 . 最简单的操作win
2017-06-22 22:10:14
6940
原创 google vr 入门之VrPanoramaView制作全景图列表
上图的效果想必大家在很多VR App中都见过,下面介绍一种简单的实现方法:大家可以看到,其实只不过是一个展示图片效果的列表,但是当你滑动到某个位置停止时,对应的条目被激活了,这张图片的全景图便开始动态的显示活动了,原理就是这么简单,那我们如何实现呢?思路:1. 首先我们需要一个展示图片的列表(ListView、RecycleView)2. 列表的每个item展示对应的平面图3.
2017-06-07 12:02:52
6188
9
原创 java反射基础知识总结
反射定义 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性。 欲用反射,必先得字节码(.class文件对象)。先来看看java反射的三个阶段:Created with Raphaël 2.1.0源文件阶段源文件阶段字节码阶段字节码阶段创建对象阶段创建对象阶段String.java文件java...
2017-06-03 16:54:27
1658
2
原创 Android中的“再按一次退出程序”代码实现
private long mExitTime;//保存上次点击back键的系统时间public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { if ((System.currentTimeMillis() - mExitTim
2017-05-31 10:29:03
1190
原创 Android监测手机网络状态变化的广播
android手机网络发生改变系统会发出相应的广播,我们只需要注册该广播就可以实时监测手机网络的变化了。首先我们创建一个广播NetworkChangedReceiver继承系统广播BroadcastReceiver,在onReceive方法中做对应网络变化的处理逻辑就可以了:public class NetworkChangedReceiver extends BroadcastRec
2017-05-27 15:25:54
12029
2
原创 Android 判断网络类型(WIFI、MOBILE、NONE)
public class NetworkUtil { public static final int TYPE_NONE = -1; public static final int TYPE_MOBILE = 0; public static final int TYPE_WIFI = 1; private NetworkUtil() {} /**
2017-05-27 11:17:54
7213
原创 HelloKotlin(kotlin配置环境变量,kotlin hello world,kotlin 入门)
自从上周Google I/O大会上提出kotlin作为Android以后开发的第一语言,感觉kotlin好像被宠坏了,好像哪都是它的影子,就连公司IOS的哥们都和我说,你还不快点学习kotlin!好,下面就开始我们的kotlin入门——hello kotlin!在学习kotlin之前,我们可以回忆以前我们是怎么学习java的,下载java jdk、配置环境、写hello world,现在我
2017-05-25 11:44:26
4081
原创 Android 屏幕适配之dimens适配
在过去多个项目中一直使用dimens适配,这种适配方式的优点很明显,不用管什么dp还是dpi这些东西,只需要以一种屏幕分辨率为基准(例如1280x720,相当于把屏幕宽分成720份,高分成1280份),生成对应屏幕分辨率的的dimens文件即可完成适配,缺点也比较明显,就是一种分辨率就需要一套dimens文件,所以dimens文件会比较多;例如这里我们以1280x720的屏幕分辨率为基准那么val...
2017-05-23 10:23:02
31441
60
原创 封装一个在小项目中使用的volley(通俗简便、方便灵活)
Google 2013 I/O大会上发布了Android平台上的网络通信库volley,今天Google 2017 I/O大会正在进行中,封装个小volley做个纪念(主要是以后可以在小项目中直接使用)。volley的设计目标是非常适合去进行数据量不大,但通信频繁的网络操作,而对于大数据量的网络操作,比如说下载文件等,volley的表现会非常的糟糕,根据项目的实际情况选择使用。voll
2017-05-18 12:02:17
894
1
原创 自定义Android Toast
Android Toast在开发中经常使用,多用于向用户展示提示信息,只不过系统的Toast有些太单调了,不够美观,下面介绍一种超简单的自定义Toast的方式:在介绍自定义Toast之前,和大家一起看几行系统Toast的源码:public static Toast makeText(Context context, CharSequence text, @Duration int dura
2017-05-15 21:29:40
2132
2
原创 Android平台版本-API级别与版本号对照表
平台版本API 级别VERSION_CODE备注Android 7.024N平台亮点Android 6.023M平台亮点Android 5.122LOLLIPOP_MR1平台亮点Android 5.021LOLLIPOP
2017-05-13 10:01:09
7239
原创 集成TBS腾讯浏览服务X5内核的Webview
1.jar包这里的jar包是指TBS Android SDKTSB Android SDK 下载链接2.so库so库在TBS提供的Demo中有,当然了Demo中还有第一步中我们下载的jar包,只下载一个Demo其实就什么都有了。TBS Demo 示例下载链接前两步完成之后jar包和so库添加完的效果图如下:3.64位手机处理x5暂时不
2017-05-11 11:33:19
18513
1
原创 Android app启动闪屏主题设置
以农行掌上银行为例我们来谈谈应用启动后闪白屏,若干秒之后进入Splash界面(欢迎页面)的问题。其实这种问题不只是农行APP的专利,其它很多APP都有这种问题,默认不对SplashActivity(启动应用的Activity)的主题背景做处理都是白色的,除非为application的主题设置了背景色。可是有很多APP它们启动之后从来没有闪过一下白屏(肉眼分辨不出有闪白屏):支付宝和
2017-05-05 23:51:23
7807
原创 google vr 入门之制作简易的VR播放器(三)
先看一下效果图,如果对google vr有一定了解的朋友,会对这种效果感兴趣的!(将我们的控制界面添加到VR模式中,目前单纯的集成google vr肯定是做不了这种效果的)google vr视频播放共有三种模式,我们可控制的只有第一种模式,其它两种模式我们可以调用api进入这种模式,仅此而已。三种模式的官网链接我的前两篇google vr入门博客中使用的就是第一种模式,它不
2017-04-27 19:42:21
2782
5
原创 Android无线调试
Android开发中经常要连接USB数据线调试应用,有时候数据线不够用、接口松动导致连接不稳定等问题时有发生,下面介绍一种无线调试的发法。先说两个adb命令:adb usb - restarts the adbd daemon listening on USBadb tcpip - restarts the adbd d
2017-04-25 13:53:43
22880
2
原创 google vr 入门之制作简易的VR播放器(二)
本篇博客是《google vr 入门之制作简易的VR播放器及去除界面控制按钮》的续篇:是对上次创建的GVR播放器的优化与增强,建议先阅读上篇本篇对播放器设置做了进一步优化:1.支持手触模式VR播放器有两种变换观看视频角度的模式:陀螺仪模式和手触模式,GVR中默认陀螺仪模式一直存在,手触模式有一个开关可以打开或者关闭(默认关闭)mVideoView.setTouchTrack
2017-04-19 10:54:24
4212
1
原创 BottomNavigationView结合ViewPager搭建流行UI框架
BottomNavigationView是Google推出的底部导航栏组件,在没有这些底部导航组件之前,Android开发者多使用的是RadioGroup,在上一个项目开发中我们使用了Google的BottomNaviationView与ViewPager相结合搭建了UI框架,现项目已经完成,总结如下:使用BottomNaviationView需要添加依赖库:在app moudle 里面的
2017-04-18 11:55:57
5646
SQLiteExpertSetup.rar
2019-12-21
Volley封装使用Demo2(优化版)
2017-12-22
AS SSD Benchmark
2017-03-13
倒计时自定义控件
2016-07-21
横屏应用startActivityForResult后竖屏显示
2017-05-25
TA创建的收藏夹 TA关注的收藏夹
TA关注的人