- 博客(41)
- 资源 (3)
- 收藏
- 关注
原创 Android8.0 焦点处理流程(二)
Android8.0 焦点处理流程(一)Android8.0 焦点处理流程(二)文章目录按键事件流入方向键焦点导航流程1. 找到当前拥有焦点的View-->mView.findFocus()2. 查找下个要获取焦点的View -->focused.focusSearch(direction)1. 查找开发人员指定的下个获取焦点的View2. 得到所有可获取焦点的View集合3. 在...
2018-11-20 11:24:34 1653
原创 Android8.0 焦点处理流程(一)
Android8.0 焦点处理流程(一)Android8.0 焦点处理流程(二)文章目录前言术语View树中焦点获取焦点的前提View请求焦点流程清除焦点ViewGroup请求焦点清除焦点总结前言现在基本上都是触摸屏手机,导致很多开发者对焦点并没有深刻认识,但仍然存在一些非触屏手机,还有Android TV平台都与焦点息息相关,这里就总结下自己看过多篇文章和自己的实践经验。先看两张焦点图。...
2018-11-17 12:11:19 2159
原创 垂直SeekBar(不用自定义)
先看效果看到网上的博客各种自定义SeekBar,又是整onMeasure,又是旋转平移的,只能说low爆了。下面最简洁垂直Seekbar,直接布局文件写就OK。布局文件<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/volume_dialog" androi
2020-08-28 18:34:21 2607 2
原创 AndroidStudio 开发系统app(解决了可能遇到的所有问题)
前言手机系统App开发人员编写代码时使用AndroidStudio,编译时通过 Android.mk 编译,在 Android9.0 上模块编译速度更是不敢恭维,用时单位是以分钟计算的。为了解决编译速度问题,强烈推荐使用 AndroidStudio编译。但是通过gradle编译又会出现各种问题,例如安装android:sharedUserId="android.uid.system"权限的APK...
2019-12-07 16:23:15 1154
原创 Activity源码分析-状态保存及恢复
本文基于 Android 8.0 代码分析状态的保存onSaveInstanceState 调用时机Activity 生命周期中,我们知道 onSaveInstanceState 方法在 onPause 方法之后执行在onStop方法之前执行。这里我们首先看一下onPause方法的源码逻辑。熟悉 Activity 启动过程就知道生命周期处理主要在 ActivityThread 中完成。Ac...
2019-10-11 17:28:13 503
原创 Android 设置投影效果
1. elevation设置投影android api(限制 21 以上 ),不过我们还是无法自定义投影颜色,透明度,大小等2. UI制作.9图片3. paint.setShadowLayer(float radius, float dx, float dy, int shadowColor);这个方法可以达到这样一个效果,在使用canvas画图时给视图顺带上一层阴影效果。简单介绍...
2019-08-13 14:43:32 9122
原创 raw cannot be resolved or is not a field解决
Android app编译报错如下raw cannot be resolved or is not a field出现该错误只有如下两个可能raw目录没有在res下,资源文件没有在raw下App编译缓存导致AndroidStudio解决办法 Clean Project–>重新Build即可Android源码编译解决办法 删除编译产生的中间文件out/target/commo...
2019-02-28 17:38:59 1551
原创 Android7.0 拨号流程源码分析
1. 应用进程从点击拨号按钮流程说起packages/apps/Dialer/src/com/android/dialer/dialpad/DialpadFragment.java@Overridepublic void onClick(View view) { int resId = view.getId(); if (resId == R.id.dialpad_flo...
2019-01-30 21:19:27 1697 1
转载 Linux 常用Find指令
一、概述: 因为Linux下面一切皆文件,经常需要搜索某些文件来编写,所以对于linux来说find是一条很重要的命令。linux下面的find指令用于在目录结构中搜索文件,并执行指定的操作。它提供了相当多的查找条件,功能很强大。在不指定查找目录的情况下,find会在对整个系统进行遍历。即使系统中含有网络文...
2018-12-20 11:35:54 326
转载 Android Native crash日志分析
Android Native crash日志分析 在Android应用crash的类型中,native类型crash应该是比较难的一种了,因为大家接触的少,然后相对也要多转几道工序,所有大部分对这个都比较生疏。虽然相关文章也有很多了,但是我在刚开始学的过程中还是遇到一些问题,下面一一记录,以便将来翻阅。 分析native crash 日志...
2018-12-05 12:55:41 7384 1
原创 Android8.0 系统异常处理流程
文章目录Android8.0 系统异常处理流程异常处理流程crash对话框的显示和用户行为后续清理工作总结Android8.0 系统异常处理流程异常处理流程Java处理未捕获异常有个Thread.UncaughtExceptionHandler,在Android系统中当然也是通过实现其来进行未捕获异常处理。Android 默认系统异常处理是在启动SystemServer进程时设置的。Zy...
2018-12-03 23:45:14 1852 2
原创 Java System.getProperty 和 System.getenv 区别
Java System.getProperty 和 System.getenv 区别getProperty and getenv方法是java.lang.System类中两个静态方法,废话少说直接看比较System.getProperty()java平台使用Properties 对象去提供本地系统配置信息,我们称为系统属性。系统属性包括当前用户,java运行时的版本,以及文件路径分隔符等。...
2018-11-30 14:16:45 1772
原创 Android TV 默认没有焦点
问题开机后Launcher默认无焦点,按键后焦点会出现,但不是在想要的位置上。分析Launcher.java中主动对指定View调用requestFocus()方法,重启后无法获取焦点,放在平时肯定是获取到焦点的。试着Launcher.java拦截dispatchKeyEvent(),发现现象依然如此,因此判断开机后按键后的获取焦点并不在这里处理,这违背了之前所熟悉的焦点查找流程。在Vi...
2018-11-26 11:31:58 1987
原创 Android8.0 按键事件处理流程
文章目录Android8.0 按键事件处理流程(一)按键事件流入按键事件派发1. DecorView.dispatchKeyEvent方法2. Activity的dispatchKeyEvent3. ViewGroup的dispatchKeyEvent4. View的dispatchKeyEvent总结Android8.0 按键事件处理流程(一)此处记录按键事件从Framework到应用层的传...
2018-11-19 23:13:26 8102
原创 view.getParent和view.getRootView的理解
view.getParent(),view.getRootView()先写结论如下,再用两个简单示例让你更容易理解结论如果该View是View树的根节点,getParent()返回null,如果该View是View树的非根节点,getParent()返回的是其父ViewgetRootView始终返回的是View树的根View示例针对Activity,无论使用什么布局,整体结构都...
2018-11-15 22:39:10 10600 6
原创 Android8.0 SystemUI 状态栏信号图标
Android 状态栏信号更新架构状态栏上信号区域在电池图标的左侧包括 vpn,ethernet,wifi,sim,airplane等,该区域对应的View为SignalClusterView,其负责显示以上信号图标的显示图中红框部分就是SignalClusterViewSignalClusterView// Intimately tied to the design of res/la...
2018-11-10 15:51:18 9417 1
原创 Android N,O,P开机语言随SIM卡自适应
文章目录Android N 首次开机不随SIM卡自适应语言Android O,P首次开机不随SIM卡自适应语言Android N 首次开机不随SIM卡自适应语言Android N和Android M上一样默认设计首次开机不会随Sim卡自适应语言,如要修改为随Sim卡自适应,可参考如下修改(Android N上language与M上有较大变化,可以同时选择多种语言,所以修改方案与M上也有所不同)...
2018-10-24 10:51:04 1324
原创 Android ids.xml的作用
ids概述ids.xml:为应用的相关资源提供唯一的资源id。id是为了获得xml中的对象需要的参数,也就是 Object = findViewById(R.id.id_name); 中的id_name。使用例如xml中定义如下<resources> <item type="id" name="btn_next" /></resources>...
2018-10-23 14:22:39 11296
原创 Android指定物理按键唤醒屏幕
指定键唤醒屏幕例如指定按键机所有键均可以唤醒屏幕,添加如下修改部分即可frameworks/base/core/java/android/view/KeyEvent.java/** @hide */ public static final boolean isWakeKey(int keyCode) { switch (keyCode) { c...
2018-10-22 20:17:13 4573
原创 Android addTextChangedListener方法介绍
文本变化监听器addTextChangedListener中TextWatcher方法三个方法意义EditText editText = findViewById(R.id.et_test);editText.addTextChangedListener(new TextWatcher() { // charSequence为在你按键之前显示的字符串 start为新字符串与charS...
2018-10-20 16:42:36 19918 2
转载 VoLTE是什么
版权声明:个人心得,欢迎来信来函交流。转载请注明出处! https://blog.csdn.net/LEON1741/article/details/79794263 你是不是遇到过下面这个情景:正在用手机玩游戏……玩得正嗨,胜利在望……突然,来电话了……...
2018-10-19 13:56:18 4100
转载 如何打开VoLTE,ViLTE,VoWifi Feature
如何配置VoLTE, ViLTE and VoWifi(IMS config for VoLTE, ViLTE and VoWifi) 1. 如何打开VoLTE,ViLTE,VoWifi Feature (How to enable VoLTE,ViLTE,VoWifi feature opti...
2018-10-19 13:40:04 7576
原创 Android xml 中@和问号?等解释
文章目录Android xml资源文件中@、@android、@*、?、@+含义和区别1. @代表引用资源2. @android 代表引用系统公开资源(第三方app可以使用)3. @* 代表引用系统的非public资源4. ? 代表引用主题属性5. @+ 代表在创建或引用资源Android xml资源文件中@、@android、@*、?、@+含义和区别1. @代表引用资源引用自定义资源。格...
2018-10-16 14:22:08 4748
原创 ListView 部分item不选中
ListView 部分item不选中Android TV开发或者按键机操作会有如下场景,ListView中会包含多项条目,但这些项中的标题条目,空栏条目等不需要被选中。如果不作处理直接通过按键上下操作,无用项依然会被选中,为了解决该问题需要做如下处理。解决方法在继承BaseAdapter适配器中重写如下方法:public boolean areAllItemsEnabled();publ...
2018-10-11 19:19:29 815
原创 应用动态显示在桌面Launcher
启用禁用组件基础知识PackageManager pm = getPackageManager();pm.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); // 禁...
2018-07-03 10:26:24 919
原创 Ubuntu(任意版本) Virtualbox不识别usb设备
ubuntu普通升级后Virtualbox就无法识别usb设备了,导致无法识别手机,无法刷机,严重影响工作.尝尽网上各种办法,甚至导致自己电脑都无法启动了,还是无法解决,可谓神农尝百草啊.最终还是自己解决.超级简单的解决办法送给你们,哈哈.解决办法下载较新版本的Virtualbox安装安装对应版本的Virtualbox扩展包上述步骤相当于升级安装,不会影响你的任何数据...
2018-06-06 09:31:50 2721
原创 Android8.0 FmRadio源码分析之录音篇
FmRadio录音流程界面管理 FmRecordActivity后台服务 FmService录音实现 FmRecorderFmRadio录音流程录音界面如图 通过FmMainActivity的 Start recording 菜单选项即可进入FmRecordActivity直接进行录音,当FmRecordActivity销毁时,录音则停止。如果要实现后...
2018-05-30 15:04:41 3960 2
原创 Android8.0 java.lang.IllegalStateException: Not allowed to start service Intent app is in background
报错log如下04-16 15:48:35.662087 29891 29891 E AndroidRuntime: java.lang.RuntimeException: Unable to start receiver com.android.music.MediaButtonIntentReceiver: java.lang.IllegalStateException: Not allo...
2018-04-23 20:51:37 3571 4
原创 ButterKnife
ButterKnifeButterKnife的使用配置ButterKnife使用Resource BindingNon-Activity BindingView ListsListener BindingBinding ResetOptional BindingsMulti-Method ListenersButterKnife和xUtils区别But...
2018-04-10 13:52:57 1198
原创 Android二维码快速集成
二维码二维码扫描示例1. 依赖zxing2. 二维码生成3. 二维码扫描4. onActivityResult接收二维码扫描结果二维码可以通过开源框架快速集成, zxing是一款Google推出的强大的二维码扫描库,支持多个平台,我们只需要Android核心代码,故依赖大神提取核心包即可。二维码扫描示例1. 依赖zxing在对应模块b...
2018-04-10 13:23:43 747
转载 UML类图
在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization), 关联(Association), 聚合(Aggregation), 组合(Composition), 依赖(Dependency)
2017-08-20 15:42:00 244
转载 Java向上转型和向下转型
在Java编程中经常碰到类型转换,对象类型转换主要包括向上转型和向下转型。向上转型即将子类看做父类对象,而向下转型则表示被向上转型过的对象如何转化为原本的对象。
2017-08-17 20:36:45 413
转载 Android Home键后Activity延迟启动
按Home键后Activity延时5s启动,这种行为为Android原生设计。在谷歌的 Android API Guides 中,特意提醒开发者不要在后台启动 activity,包括在 Service 和 BroadcastReceiver 中,这样的设计是为了避免在用户毫不知情的情况下突然中断用户正在进行的工作。
2017-08-10 23:13:19 1170
转载 Android apk签名
Android系统要求所有的应用必须被证书进行数字签名之后才能进行安装。android系统通过该证书来确认应用的作者,该证书是不需要权威机构认证的,一般情况下应用都是用开发者的自签名证书
2017-08-07 22:13:50 687
转载 初探Android PMS服务
Android系统中PackageManagerService简称PMS,主要负责各种APK的安装,卸载,优化和查询。android系统中,pm工具是PMS的一个展现命令。通过了解pm的使用,可以了解PMS究竟提供了哪些具体的功能,进而帮助我们理解和分析PMS的源码实现。pm使用利用adb shell命令,进入Android设备的终端,pm工具在/system/bin中.
2017-08-04 11:13:52 2217 1
原创 Android Pair记录
PairPair位于android.util包,根据字面意思一对也可以判断出该对象可以存放一对值,的确被猜中了,其有first和second两个成员。在某些情况使用比较方便。
2017-07-31 22:35:20 1548
转载 360手机log显示不全
借用官方的抓取日志的方法1、在桌面点击拨号,在拨号盘输入“*20121220#”,进入工程模式; 2、找到日志输出等级,点击进入; 3、点击“Log print enable”,选择“Enable”; 4、点击“Java log level”,选择“LOGV”; 5、点击“C and C++ log level”,选择“LOGV”; 6、点击“Kernel log level”,选择“K
2017-07-31 21:41:47 772
原创 Android N 添加PowerControl Widget
问题开启Power Control Widget,过开机向导报错,报错log如下: Unable to start receiver com.android.settings.widget.SettingsAppWidgetProvider: java.lang.IllegalStateException: User 0 must be unlocked for widgets to be available
2017-05-25 10:08:34 3516 2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人