随机推荐

设计模式之观察者模式

观察者模式是使用频率最高的设计模式之一,它用于建立一种对象与对象之间的依赖关系,一个对象发生改变时将自动通知其他对象,其他对象将相应作出反应。观察者模式定义观察者模式(Observer Pattern):定义对象之间的一种一对多依赖关系,使得每当一个对象状态发生改变时,其相关依赖对象皆得到通知并...

启动startService()分析(3)

闲话少说,接上一篇《Android 6.0 启动startService()源码分析(2)》10.9 ActiveServices.bumpServiceExecutingLocked 发送SERVICE_TIMEOUT_MSG用来判断是否ANR   private final void ...

Android按键音简单源码分析

前言记录一下Android按键音相关分析。记录于此,方便自己查阅和回顾。Android P源码上分析正文当一个View设置点击监听事件setOnClickListener()时,如果用户点击默认就会有按键音,当然如果你不需要,可以通过如下取消。xml配置android:s...

DisplayMetrics获取宽高不对

前言Android P项目开发时,获取的屏幕高度存在误差,之前项目中获取的高度都是固定的,后面为了适配各种项目,改为了动态获取屏幕高宽。记录于此,方便自己查阅。好记性不如烂笔头正文Android 版本 : Android P获取的屏幕高度错误adb shell wm size#打...

Linux修改文件属性

前言经常用,但还是会忘记,因此这里又整理一下。记录全一定,方便自己回顾。这里主要介绍chown ,chmod,chgrp。正文在Linux中通过ls -l可以看文件的属性。chgrpchgrp:更改文件属组。chgrp [-R] 属组名 文件名-R:递归更改文件属组,就是在更...

JNI之自定义对象使用

前言Java中存在自定义对象的,因此JNI是要考虑传入自定义对象的使用。记录一下,方便自己查阅和学习。正文这里定义一个Staff类,传入JNI中打印和冲JNI中创建返回给Java。还是在之前动态注册的基础上改。如果没有基础,可以看看《JNI动态注册》Staff.java# @站长pa...