自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 资源 (2)
  • 收藏
  • 关注

原创 android自定义permission android:protectionLevel说明

Android protectionLevel分4个级别:normal、dangerous、signature、signatureOrSystem;normal:这是最低风险的权限,如果应用声明了此权限,也不会提示安装应用的用户授权(例如,如果声明了定位权限,则应用到定位功能时,会明确提示用户,是否授予定位权限,但是protectionLevel为normal的不会明确提示,直接默认授予),系统直接默认该应用有此权限;dangerous:这种级别的权限风险更高,拥有此权限可能会访问用户私人数据或者

2020-08-25 09:23:19 638

原创 23种设计模式之单例模式

意图确保某一个类只有一个实例,而且实例化并向整个系统提供这个实例。适用性确保某个类有且只有一个对象的场景,避免产生多个对象消耗过多的资源,或者某种类型的对象只应该有且只有一个。例如,创建一个对象需要消耗的资源过多,如要访问IO和数据库等资源。类图###关键点1.构造函数不对外开放,一般为Private;2.通过一个静态方法或者枚举返回单例类对象;3.确保单例类的对象有且只有一个,尤其是在多线程环境下;4.确保单例类对象在反序列化时不会重新构建对象;单例模式的6种实现方式饿汉模式pu

2020-07-12 17:25:03 155

原创 Android9.0 SystemUI 屏蔽打开wifi时不显示4G图标的逻辑

Android 9.0 中打开wifi时,不显示4G图标,只有信号值,现项目需求在打开wifi时仍然显示4G图标。排查及修改过程如下:systemui/src/com/android/systemui/statusbar/StatusBarMobileView.javaprivate void updateState(MobileIconState state) { //省略部分代码 if (mState.typeId != state.typeId) { if (s

2020-07-02 18:56:32 1059

原创 AndroidStudio编译单个Module

AS编译单个Module:在Terminal标签下输入:gradlew :your_module_name:task_name举例:gradlew :app:assembleRelease编译完成:

2020-06-28 11:38:43 1474

原创 23种设计模式之代理模式

意图为其他对象提供一种代理以控制对这个对象的访问。适用性适用代理模式常见情况:1.远程代理(Remote Proxy)为一个对象在不同的地址空间提供局部代表;2.虚代理(Virtual Proxy)根据需要创建开销很大的对象,比如我们从网站上下载一张大图时,可以先显示默认图,下载完成后再显示真正的图;3.保护代理(Protection Proxy)控制对原始对象的访问,用于对象应该有不同的访问权限的时候。4.智能指引(Smart Reference)取代了简单的指针,在访问对象时执行一些附加操

2020-06-25 11:12:08 393

原创 Android录屏命令screenrecord命令的使用

adb shell screenrecord --time-limit 20 /sdcard/test.mp4–time-limit 设置时间长度,默认180秒Ctrl+C 结束录屏通过screenrecod --help帮助命令查看提示选项: $ screenrecord --helpUsage: screenrecord [options] <filename>Android screenrecord v1.2. Records the device's display to

2020-06-24 18:00:02 1563

原创 浮窗WindowManager addView响应返回按键

显示悬浮框,注意一定不要设置WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,拿不到Focus是接收不到back事件的。private void showPreviewDialog(){ View mPreviewLayout = LayoutInflater.from(getContext()).inflate(R.layout.window_preview,null); WindowManager.LayoutParams layoutPara

2020-06-23 21:08:17 1346

原创 Android9.0 SystemUI通知显示流程

系统会通过两个方法将通知上报给SystemUI的NotificationListener类:@Overridepublic void onListenerConnected() { if (DEBUG) Log.d(TAG, "onListenerConnected"); onPluginConnected(); final StatusBarNotification[] notifications = getActiveNotifications(); if (noti

2020-06-23 16:57:00 1374 1

原创 23种设计模式之装饰模式

意图动态地给一个对象添加一些额外的职责。别名装饰模式Decorator也称包装模式Wrapper动机有时我们希望给某个对象而不是整个类添加一些功能。适用性以下情况适用装饰模式:1.在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责。2.处理那些可以撤销的职责。3.当不能采用生成子类的方法进行扩充时。一种情况是,可能有大量的独立的扩展,为支持每一种组合将产生大量的子类,使得子类数目呈爆炸式增长。另一种情况可能是因为类定义被隐藏或者类定义不能用于生成子类。类图角色介绍Co

2020-06-21 19:24:30 258

原创 android9.0 修改状态栏图标的顺序

原理com.android.systemui.statusbar.phone/StatusBarIconControllerImpl.java类的构造方法中读取com.android.internal.R.array.config_statusBarIcons,按照此数组的顺序排序,如果需要修改顺序,则需要修改此文件。 public StatusBarIconControllerImpl(Context context) { super(context.getResources().g

2020-06-17 18:21:00 1102

原创 Android9.0 状态栏图标显示“点号”怎么办

现象状态栏图标显示的个数有两个限制:1.最大个数限制8个(包括battery):2.宽度限制;最终能够显示的图标个数取这两个限制的较小值。相关代码逻辑在com.android.systemui.statusbar.phone/StatusIconContainer.java类中: // Max 8 status icons including battery private static final int MAX_ICONS = 7;@Override protected vo

2020-06-17 18:02:44 983 2

原创 Android9.0 修改状态栏图标之间的间距

操作com.android.systemui.statusbar.phone/StatusBarIconController.java类中修改如下方法:@VisibleForTesting protected StatusBarIconView addIcon(int index, String slot, boolean blocked, StatusBarIcon icon) { StatusBarIconView view =

2020-06-17 17:42:46 1980

原创 Android Paint Style 如何正确画一个空心矩形

Android在用画笔的时候有三种Style,分别是Paint.Style.STROKE 只绘制图形轮廓(描边)Paint.Style.FILL 只绘制图形内容Paint.Style.FILL_AND_STROKE 既绘制轮廓也绘制内容那么如何正确画一个空心矩形呢?比如我们现在要画一个200x200像素,轮廓宽度为40像素的空心矩形,显示效果如下,上面的粉色是宽度为200像素的view。代码如下:<ImageView android:id="@+id/imageview

2020-06-14 16:52:57 2212 2

原创 Calabash android搭建本地环境

Calabash android 搭建本地环境安装rbenv官方链接 How to install Homebrew ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)” Installing rbenv and ruby-build git clone https

2016-03-21 15:42:42 414

原创 Calabash 快速入门 (Android)

Calabash 快速入门 (Android)概述本篇包括以下内容: 环境:mac/android studio 目标:用Calabash实现一个简单app的自动化测试 测试用例:信用卡的长度为16位 实现过程:搭建环境,编写APK,写测试用例,运行流程安装Calabash沙箱编写app写测试脚本在模拟器或者真机上运行测试脚本,以及上传到cloudtest.xamarin.coms

2016-03-18 18:35:15 2308 1

转载 关于Android的.so文件你所需要知道的

原文链接原英文链接因近期引用到百川即时通讯SDK时,遇到一些.so方面的问题,现转载此篇文章,以做记录。早期的Android系统几乎只支持ARMv5的CPU架构,你知道现在它支持多少种吗?7种!Android系统目前支持以下七种不同的CPU架构:ARMv5,ARMv7 (从2010年起),x86 (从2011年起),MIPS (从2012年起),ARMv8,MIPS64和x

2016-03-18 12:42:46 302

ListView滑轮选择的控件

这时在WheelView的基础上实现的,实现了ListView得滑轮选择效果。

2015-01-12

android包名以及签名查看器

可以查看android手机内所有安装的app的包名以及签名信息,包括md5和sha1,供用户在申请各种第三方sdk需要提供包名以及签名信息的时候查用。支持动态查询。

2015-01-08

空空如也

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

TA关注的人

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