
Android开发
三泥1121
这个作者很懒,什么都没留下…
展开
-
android自定义permission android:protectionLevel说明
Android protectionLevel分4个级别:normal、dangerous、signature、signatureOrSystem;normal:这是最低风险的权限,如果应用声明了此权限,也不会提示安装应用的用户授权(例如,如果声明了定位权限,则应用到定位功能时,会明确提示用户,是否授予定位权限,但是protectionLevel为normal的不会明确提示,直接默认授予),系统直接默认该应用有此权限;dangerous:这种级别的权限风险更高,拥有此权限可能会访问用户私人数据或者原创 2020-08-25 09:23:19 · 738 阅读 · 0 评论 -
23种设计模式之单例模式
意图确保某一个类只有一个实例,而且实例化并向整个系统提供这个实例。适用性确保某个类有且只有一个对象的场景,避免产生多个对象消耗过多的资源,或者某种类型的对象只应该有且只有一个。例如,创建一个对象需要消耗的资源过多,如要访问IO和数据库等资源。类图###关键点1.构造函数不对外开放,一般为Private;2.通过一个静态方法或者枚举返回单例类对象;3.确保单例类的对象有且只有一个,尤其是在多线程环境下;4.确保单例类对象在反序列化时不会重新构建对象;单例模式的6种实现方式饿汉模式pu转载 2020-07-12 17:25:03 · 203 阅读 · 0 评论 -
AndroidStudio编译单个Module
AS编译单个Module:在Terminal标签下输入:gradlew :your_module_name:task_name举例:gradlew :app:assembleRelease编译完成:原创 2020-06-28 11:38:43 · 1636 阅读 · 0 评论 -
23种设计模式之代理模式
意图为其他对象提供一种代理以控制对这个对象的访问。适用性适用代理模式常见情况:1.远程代理(Remote Proxy)为一个对象在不同的地址空间提供局部代表;2.虚代理(Virtual Proxy)根据需要创建开销很大的对象,比如我们从网站上下载一张大图时,可以先显示默认图,下载完成后再显示真正的图;3.保护代理(Protection Proxy)控制对原始对象的访问,用于对象应该有不同的访问权限的时候。4.智能指引(Smart Reference)取代了简单的指针,在访问对象时执行一些附加操原创 2020-06-25 11:12:08 · 432 阅读 · 0 评论 -
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 · 1731 阅读 · 0 评论 -
浮窗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 · 1575 阅读 · 0 评论 -
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 · 1460 阅读 · 1 评论 -
23种设计模式之装饰模式
意图动态地给一个对象添加一些额外的职责。别名装饰模式Decorator也称包装模式Wrapper动机有时我们希望给某个对象而不是整个类添加一些功能。适用性以下情况适用装饰模式:1.在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责。2.处理那些可以撤销的职责。3.当不能采用生成子类的方法进行扩充时。一种情况是,可能有大量的独立的扩展,为支持每一种组合将产生大量的子类,使得子类数目呈爆炸式增长。另一种情况可能是因为类定义被隐藏或者类定义不能用于生成子类。类图角色介绍Co原创 2020-06-21 19:24:30 · 312 阅读 · 0 评论 -
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 · 1309 阅读 · 0 评论 -
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 · 1243 阅读 · 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 · 2289 阅读 · 0 评论 -
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 · 2326 阅读 · 2 评论 -
关于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 · 346 阅读 · 0 评论