自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

徘徊的风

需要啥描述啊,直接看内容

  • 博客(72)
  • 资源 (21)
  • 问答 (1)
  • 收藏
  • 关注

原创 Android手机防沉迷软件的基本原理

(现在手机游戏、短视频等不仅对小孩子负面影响巨大,连很多成年人都沉迷其中难以自拔,影响工作、生活、学习。这已经造成全社会性的巨大影响,长此以往,国将不国。本人仅在此以自己掌握的些许技术略尽绵薄之力,希望能抛砖引玉,更希望能有具备大能力的各方有识之士力挽狂澜,成我所之不能。欢迎加微交流84378495)

2023-09-07 17:45:20 676 1

转载 AccessibilityServiceInfo api文档

https://developer.android.com/reference/android/accessibilityservice/AccessibilityServiceInfo#FLAG_INCLUDE_NOT_IMPORTANT_VIEWSAccessibilityServiceInfoKotlin|Javapublic class AccessibilityServiceInfoextendsObjectimplementsParcelablejava.lang.Obj...

2022-05-13 11:23:24 801

原创 iQOO U5x手机到手测评

https://actionwind.wordpress.com/2022/04/28/iqoo-u5x%e6%89%8b%e6%9c%ba%e5%88%b0%e6%89%8b%e6%b5%8b%e8%af%84/这两天刚从京东的iQOO官方旗舰店买到这部手机,内存选的是8G+128G,先说一下总体的试用评价:good。但也觉得有一些小小的不满意,其中唯一最大的问题就是电源键松动左右摇晃。对了,说一下我的专业背景:我是拥有国家认证的软件评测师,外加业余的程序员。不过今天我...

2022-04-28 11:21:05 5278

转载 AccessibilityAction API文档

https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityActionAccessibilityNodeInfo.AccessibilityActionKotlin|Javapublic static final class AccessibilityNodeInfo.AccessibilityActionextendsObjectimpleme...

2022-04-19 13:52:58 523

转载 AccessibilityNodeInfo api文档

https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfoAccessibilityNodeInfoKotlin|Javapublic class AccessibilityNodeInfoextendsObjectimplementsParcelablejava.lang.Object ↳ android.view.accessibility.A...

2022-04-18 14:51:46 945

转载 Android AccessibilityEvent api文档

老是要穿墙去看着官方文档真是麻烦死了,存在这里吧。顺便说一句,这blog做得太烂了,垃圾功能太多,老出问题、慢得要命、烦得要死,真是受不了https://developer.android.com/reference/android/view/accessibility/AccessibilityEvent|Javapublic final class AccessibilityEventextendsAccessibilityRecordimplementsParcelablejava...

2022-04-18 13:59:51 589

转载 Android AccessibilityService api文档

老是要穿墙去看着官方文档真是麻烦死了,存在这里吧,为什么这里字体都改不了,真是受不了这blog,哪个傻冒设计的https://developer.android.com/reference/android/accessibilityservice/AccessibilityServiceAccessibilityServiceKotlin|Javapublic abstract class AccessibilityServiceextendsServicejava.lang.Objec..

2022-04-18 13:36:51 932

转载 Android无障碍服务开发

https://developer.android.com/guide/topics/ui/accessibility/service?hl=zh-cnAndroid无障碍服务相关app的权限比一般的app大很多,它可以读取界面的内容,并执行一些自动化操作。有兴趣交流Android无障碍服务开发的朋友请加QQ群:752296312Android官方提供这种服务接口原本是为了让残障人士方便使用手机而开发相应的功能,但在现实中它有越来越多的应用。以下是android官网对无障碍服务api的介绍:A.

2022-04-17 16:28:36 6544 2

原创 Android8.1根据app名字调用显示app的属性页(App info)

https://actionwind.wordpress.com/2022/04/14/android8-1%e6%a0%b9%e6%8d%aeapp%e5%90%8d%e5%ad%97%e8%b0%83%e7%94%a8%e6%98%be%e7%a4%baapp%e7%9a%84%e5%b1%9e%e6%80%a7%e9%a1%b5%ef%bc%88app-info%ef%bc%89/ 如果要让手机显示出app的属性页: 代码如下://调用app的属性页(...

2022-04-14 20:28:26 2682

原创 Android8.1 编写定时计划任务

1、首先要继承AlarmManager.OnAlarmListener类;2、实现onAlarm()方法,这个方法里面的程序就是指定的时间被执行的内容,如果要实现每天定时执行相同的内容,则在这个方法里面再设定第二天的定时即可。3、然后在onCreate()中设定第一次定时:AlarmManager alarmManager;Calendar calendar = Calendar.getInstance();//这两个变量可以在onCreate()方法的外面声明,使其成为全局变量,用起来方便

2022-04-12 11:26:33 2260

原创 Android8.1 toast无法显示

这个问题疑惑了好久,一直没去解决,今天终于找到解决方案了:https://bbs.csdn.net/topics/390889540 如果使用高于23的sdk版本编译, Toast.makeText(m.getApplicationContext(), msg, Toast.LENGTH_LONG).show() 原来是要加个show();...

2022-03-11 13:33:14 2228

原创 ADB命令收集

查看当前界面类名:adb shell dumpsys window |findstr "mFocus"卸载App:Adb shell pm uninstall -k 包名 (此命令小心使用,有些需要root权限的app卸载之后无法重新安装)其他命令:1、adb devices 显示系统中全部设备2、adb version 查看版本信息3、adb get-serialno 获取设备序列号4、adb reboot 重启设备5、adb kill-server 关闭adb服务...

2022-03-10 14:01:31 615

原创 安卓手机用adb命令删除掉应用

试了一下,系统自带的应用也能删掉。当然了,首先你得在电脑中配置好adb命令运行的环境。什么,不知道怎么配?那就……搜一下,好吧。然后在电脑中运行这条命令:adb shell pm uninstall -k app的包名这样系统自带的某些流氓软件也可以删除了,不过删之前最好先备份一下,免得要用的时候找不到了。...

2021-10-27 16:21:18 3788

原创 Android Studio 项目文件代码错乱、索引错误的解决方法

最近我的电脑老师突然黑屏重启,结果发现as打开manifest、gradle文件都出错了,里面的内容是别的文件的内容。搜到了解决方法:关掉as之后进入以下目录:系统盘:\Users\用户名\.AndroidStudio3.6\system (请各位根据自己电脑的实际情况修改路径)然后删除caches文件夹,再打开as它会重新建立索引,然后就正常了。...

2021-08-01 12:44:21 1003

原创 Android8.1 无障碍服务获取当前Activity的名字

找来找去,终于找到能够获取当前Activity名字的方法,需要用到无障碍服务AccessibilityService,在以下的方法中添加代码: @Override public void onAccessibilityEvent(AccessibilityEvent event) { AccessibilityNodeInfo source = event.getSource(); if (source != null) { ...

2021-07-17 16:06:28 2820 1

转载 解决windows下文件名太长无法删除的问题

今天删除一个无用文件夹时windows跳出如下弹窗:解决方法:1、在要删除的文件夹同级新建一个空文件夹(如图:1是要删除的文件夹,也就是包含那个文件名过长的文件的文件夹,2是空文件夹)2、在cmd窗口进入那个目录,在命令行中输入以下命令并回车robocopy 2 1 /purge注意:2是空文件夹,1是要删除的文件夹3、最后删除1和2两个文件夹,这样就解决了无法删除文件名过长的文件了————————————————版权声明:本文为CSDN博主「yedajiang44」的原...

2021-07-14 16:34:08 2308

原创 Android Studio设置打包apk时的文件名

以下方法在as3.2中测试成功。在app目录下的build.gradle里面加入以下两段代码:1、在android{ }里面加入:// 自定义apk文件名 applicationVariants.all { variant -> variant.outputs.all { def fileName if (outputFile != null && outputFile.name.endsWith('.

2021-07-12 10:37:58 989

转载 Java时间段判断

论坛看到的,记录一下。判断时间是否在一个指定的时间范围内:https://bbs.csdn.net/topics/390084913?list=24368752Calendar cal = Calendar.getInstance();// 当前日期int hour = cal.get(Calendar.HOUR_OF_DAY);// 获取小时int minute = cal.get(Calendar.MINUTE);// 获取分钟int minuteOfDay = hour *...

2021-07-10 15:43:59 677

原创 Android Studio如何使用DDMS

其实DDMS不是Android Studio自带的,而是adk自带的,所以只需要进入adk的目录,在tools的文件夹,运行里面的monitor.bat文件,过一会儿DDMS就会出现了。

2021-07-09 15:48:20 427

转载 Android的Handler类

Handler类有两个主要作用:1、计划在未来某个时间运行一个功能或者发送一个消息;2、在一个不同的线程计执行你所要的操作。 听起来应该就是Android的多线程机制。多线程用new Thread()不就行了吗?但你会发现如果你要直接用new Thread新开一个线程来改变当前的app界面,它会报错,android并不允许你这么用多线程。因为它不愿意把多线程协作的设计工作全部交给android app程序员去做,大概是觉得你太次了肯定做不好吧。要不然就是为了让你开发方便一些,...

2021-06-26 17:15:31 479

原创 Android无障碍服务(AccessibilityService)获取resource id的权限设置

android:accessibilityFlags="flagReportViewIds|flagRetrieveInteractiveWindows|flagRequestFilterKeyEvents"

2021-06-11 13:15:46 2859 1

转载 Android无障碍主动调用onAccessibilityEvent( )方法的方法

如何主动发起调用onAccessibilityEvent在使用AccessibilityService时,屏幕变化触发事件onAccessibilityEvent从而得到屏幕中的结构event.getSource()或者event.getRootInActiveWindow()那么这个事件该如何主动触发呢?例如我在另外一个类中,在屏幕无任何变化的静止状态下,主动触发onAccessibilityEvent从而得到event.getRootInActiveWindow()的界面结构,是否是通过反射的方式

2021-06-11 12:42:22 3075

原创 用linux命令在文件和文件夹中搜索字符串

在文件夹的所有文件中搜索字符串:grep -nr 要搜的字符串 文件夹路径

2021-06-08 09:37:31 1144

转载 Android之最简单的ImageView加边框方法

Broncho.Lee 2013-01-07 09:59:10 20674 收藏 3分类专栏: Android版权通常情况下,如果我们要给ImageView加上边框,比如宽为3dp的灰色框,是自己定义一个MyImageView类,继承自ImageView,在其onDraw方法中画canvas。还有设置一个带有边框的背景图片的方法。这里给出一种简单方法,既不需要创建衍生的类,也不需要准备图片。采用xml定义的方式实现。背景定义xml: bg_border.xml<?xm...

2021-06-07 11:18:46 536

转载 Android Studio 编译时错误提示信息乱码的解决方案

我使用的as是3.6,编译运行的时候错误提示信息出现乱码,搜了好多方案都没解决,后来还是在qq群问到了解决方案,发到这里和大家分享一下。以下内容转载自:Android Studio Build窗口出现中文乱码问题解决_qq_35291364的博客-CSDN博客在Android Studio中双击Shift或者点击顶部全局搜索"Edit Custom VM Options"或者点击Help—>Edit Custom VM Options(如果提示没有这个文件的话,在提示框中点击“创建”按

2021-06-05 09:12:59 9410 4

转载 Android Studio run app调试时添加签名的配置

以下内容摘录自:https://blog.csdn.net/li_chengyang/article/details/85784574android studio提供了可视化的页面来设置自定义的签名。打开File-->Project Structure-->选择moudle下的要配置的工程,如下图所示,配置完成后保存。2、接着配置编译时使用自定义签名。 不同版本的as设置稍有不同,自己观察一下界面即可...

2021-05-27 12:01:03 591

转载 android 辅助功能(无障碍) AccessibilityService 实战入门详解

转载自:王能的博客https://blog.csdn.net/weimingjue/article/details/82744146一、原理:大致简述一下,谷歌已经在View、ViewGroup、TextView等控件的文字改变、滑动、UI变化埋下了接口,当这些状态变化时控件会回调系统API,API系统然后对这些对象的数据进行组装,为了数据的安全性,系统会重新创建一些对象(AccessibilityEvent、AccessibilityNodeInfo)来间接保存这些数据,然后通过跨进程将这些数据返回给

2021-05-14 09:19:39 2398

转载 Android无障碍简单开发->模拟滑动点击输入等

以下文章转载自:https://blog.csdn.net/Dullyoung/article/details/106090220 似乎除了input type=password的edit text 其他所有的UI都可以进行操作。直接开始。1首先配置环境。创建一个service 清单中代码如下,就算用AS直接创建,也需要配置一些权限等东西。<service android:name=".MyAccessibilityService" ...

2021-05-14 09:17:23 4078 2

原创 Android开发:menu(菜单)

在Activity中实现 :@Overridepublic boolean onCreateOptionsMenu(Menu menu){ menu.add(}这是整个菜单栏。@Overridepublic boolean onOptionsItemSelected(MenuItem item){}这是菜单栏中的小项。

2021-05-12 10:44:01 485

转载 Android 判断无障碍服务权限是否已经打开

本文以下内容转摘自:https://blog.csdn.net/liuhongshuo2012/article/details/507510761、判断无障碍服务是否已经打开的方法:private boolean isAccessibilitySettingsOn(Context mContext) { int accessibilityEnabled = 0; final String service = getPackageName() + "/" + Auto..

2021-05-07 17:38:28 6977

原创 Android使用Room操作数据库

同时用过JDBC和android的SqliteDatabase的人就知道,SqliteDatabase真的是太不好用了,别人说sqlite的其他一些缺点我都不在乎,我在乎的就是它好不好用。

2021-05-07 12:03:53 977

转载 Android Studio中修改APP图标和APP名称

转载自:https://blog.csdn.net/hou09tian/article/details/803889741修改APP图标在程序对应的AndroidMenifest.xml中指定了该APP的图标。<application> ...... android:icon="@mipmap/ic_launcher"</application>2 修改APP名称在Android Studio中以“Android”模式浏览程序,在“app-&g.

2021-04-29 09:22:44 1299

原创 Android数据库SQLite的读写

adb命令 sqlite3可以操作数据库:数据库存放在app的目录里面,要先进入/data,或者/data/data,查找app的目录,再进入databases目录,然后再执行:sqlite3 数据库文件名sqlite>.modecolum 修改一下查询结果的显示模式sqlite>.headeron 这条命令是打开首行显示字段名的功能sqlite命令下执行.dbinfo,其中user version这一项是这个db的版本号(由程序员写入)。剩下的,就看你对...

2021-04-28 11:41:12 930

原创 Android Studio生成APK

生成apk步骤:1、Android Studio->Build->Generate Signed Bundle or APK2、选择要生成APK的Module3、新建key文件(这好像是用来标识这个app的,同一个app使用不同的key的话会造成冲突,所以如果之前已经有这个app的key的话,就不用新建,而是选择那个key文件)。4、选择保存路径,设置密码5、Key alias,随便设置一个名字,娶一个你想娶的,说错了,取。设置密码 填入一些作者、公司的信息,至少填一个。...

2021-04-20 17:24:20 9971

原创 Android的Intent

Intent的作用:1、从一个Activity跳转到(启动)另外一个Activity:startActivity(Intent)Component name决定启动什么组件Action:启用另外一个组件做些什么操作,Data:向另外一个组件传送数据Extras:额外的信息,键值对具体的使用:1、调用另一个组件://首先生成并设置Intent:Intent intent=new Intent();intent.setClass(this,target);//这个设置的是从哪个组

2021-04-19 12:12:50 341

转载 Android Studio 如何快速添加override或者implements方法

https://blog.csdn.net/m0_37684676/article/details/78525840快速添加override或者implements的方法:Android Studio:右键(或者Alt + Insert)->Generate -> Override Method,或者 Implement MethodEclipse 的ADT:右键—Source—Override/Implements Method…...

2021-04-19 10:22:09 1258

原创 未来科技畅想:DNA手机屏幕

刚才忽然有了一个很有趣的想法,在这里记录一下:如果手机输入自己的DNA信息之后,手机屏幕显示的东西就只有自己的眼睛才看得到,那该多好啊,这就很好的保护了自己的隐私了。别人看这手机的时候,就是一个预设好的动态画面,比如是一份在不断缓缓上翻的文字资料。 也不知道这种科技有没有理论上的实现可能性。比如说,不同的人的眼睛所看到的东西是否会有细微的差别?就像不同的人的指纹是有差别的一样。不同的人对光线的感觉是否也有类似的差别?如果有的话,也许从理论上来说它就是有可能的了。...

2021-04-07 14:25:20 153

转载 Android Studio出现“Default activity not found”的解决方案

之前写好的一个项目,今天打开死活运行不了了,提示“Default activity not found”。在网上搜了一通之后,将解决方案转载一下,方便以后查询:https://blog.csdn.net/anhenzhufeng/article/details/775614821、点击运行按钮旁边的那个app下拉框,点击Edit Configurations:2、将Launch从Default Activity改成Nothing就可以了:至于为什么会出现这样的问...

2021-03-27 11:09:40 1721

原创 说说Android Studio断点调试时那个著名的“Frames are not available”问题

估计很多新手都遇到过这个问题:然后在网上搜到的解决方案通通不管用,甚至还被骗去装了一遍flash player。好了,说说真正的解决方案:真正的解决方案就是不需要解决,这其实不是个问题,而是正常的界面,当程序还没执行到断点位置的时候界面就是这样的,明白了吧。...

2021-03-26 18:02:58 4042 13

原创 Android8.1悬浮窗的配置

之前写过一篇文章有提及悬浮窗的实现:《Android 8.1 App开机自启动、注册为无障碍服务、实现悬浮窗》。 最近需要实现一个覆盖全屏的悬浮窗,目的是为了给屏幕加上一层护眼色。这样的话这种悬浮窗就不能屏蔽对下层软件的操作,比如说你要点击滑动之类的,这些操作就必须能够穿透到下层的软件界面去,相关的悬浮窗设置代码就可以这样设置:layoutParams.type = WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;//设置为悬...

2021-03-26 10:40:38 625

android wifi热点(AP)的开关

应网友的要求又写了一个android wifi热点的开关,就是打开后可将手机作为一个无线接入点使用,android本身有这个功能,我写的这个只是一个便捷的开关。安装好后点击本程序的图标即可实现打开和关闭热点。

2017-02-12

Android手机移动网络开关按钮

这是一个手机移动网络的开关按钮,安装好后直接点击这个应用的图标就能打开或关闭手机的移动网络。你可将它的快捷方式放在主页面上作为一个按钮使用。

2017-02-11

android的wifi开关按钮和移动网络开关按钮

这个是android上的wifi开关按钮,写这个主要是因为出于省电和减少辐射的原因,我经常要把手机的wifi给关了。android倒是自带有个开关wifi的widget,但是太占地方了,所以还是自己写一个吧。分享出来希望对大家有用。

2017-02-11

用于代替电源键短按的熄屏锁屏app

我这老手机的电源键都快被我按坏了,所以写这个app来代替电源键的短按锁屏熄屏。 这个app首次运行时会要求激活设备管理权限,按提示操作即可,也可以手动激活它:设置-〉安全-〉设备管理者,勾上ScreenOff。 卸载时则要求将它反激活,步骤一样。 以后每次点击这个app的图标就能熄屏了。 我还想做一个摇一摇就唤醒手机的功能,再次减轻电源键的负担。不知道能不能写出来。

2016-12-12

ScreenOn 屏幕长亮app

应网友的要求,写了一个让Android屏幕保持长亮的app。打开app主界面后:1、按Home键可在后台运行继续保持屏幕长亮;2、按返回键则关闭长亮状态。

2016-12-11

可后台运行的手电筒app

在黑暗的地方边走路边看手机,你就需要这个软件了,这个手电筒app它可以在后台运行,在你玩手机其它应用的时候照亮脚下的路。使用方法很简单:打开后,按返回键关闭手电筒,若按Home键则将其放后台运行。软件秉承我一直以来超级精简的风格,大小只有惊人的274kb多(其实主要是因为复杂大型的软件我也写不了,哈哈哈):http://pan.baidu.com/s/1pKHxoAf

2016-12-07

Android Capture V0.52

因为工作的需要,经常从电脑给手机抓屏,实在是找不到比较轻便合用顺手的软件,只好动手自己写了一个,大小只有惊人的28.8k。希望对大家有用吧。运行环境windows + java7,还有要配置好adb。各位用了要是发现什么问题,或者想添加什么新功能,欢迎反馈给我:qq 81188463

2016-04-26

AndroidCapture v0.4

v0.4版本发布:修改了几个bugs。 从电脑给手机抓屏,实在是找不到比较轻便又合意的软件,只好动手自己写了一个,大小只有惊人的10.2k。希望对大家有用吧,功能会逐渐完善。运行环境windows + java7,还有要配置好adb。各位用了要是发现什么问题,或者想添加什么新功能,欢迎反馈给我:qq 81188463

2016-01-30

AndroidCapture

从电脑给手机抓屏,实在是找不到比较轻便的软件,只好动手自己写了一个,大小只有惊人的9.37k。希望对大家有用吧,功能会逐渐完善。运行环境windows + java7,还有要配置好adb。

2016-01-27

Android设备电量消耗测试软件BnT

BnT 是Battery and Time的意思,是本人编写的一款Android电量消耗测试软件,使用非常简单,具有以下功能: 1. 自动记录电量变化:一打软件自动开始记录电量的百分比,当电量发生变化时自动更新记录信息; 2. 防休眠功能:当软件处于前台运行的时候将会防止Android系统进入休眠状态; 3. 后台运行:打软件后按Home键,软件将在后台运行,继续记录电量消耗信息; 4. 按返回键退出:打开软件后按返回键彻底退出,不再记录电量信息; 5. 输出测试报告:软件在打开后会自动生成测试报告,并自动输出到主目录的BnT.xls文件中。

2015-11-13

Android电量消耗测试软件BnT

BnT 是Battery and Time的意思,是本人编写的一款Android电量消耗测试软件,使用非常简单,具有以下功能: 1. 自动记录电量变化:一打软件自动开始记录电量的百分比,当电量发生变化时自动更新记录信息; 2. 防休眠功能:当软件处于前台运行的时候将会防止机台进入休眠状态; 2. 后台运行:打软件后按Home键,软件将在后台运行,继续记录电量消耗信息; 3. 按返回键退出:打开软件后按返回键彻底退出,不再记录电量信息; 4. 输出测试报告:软件在打开后会自动生成测试报告,并自动输出到主目录的BnT.xls文件中。

2015-11-13

ettercap windows版

中间人攻击MITM dns ARP欺骗 网页重定向 1.ettercap插件使用(局域网内DNS欺骗) 2.ettercap过滤脚本(替换网页图片&下载内容、插入脚本) 3.使用ssltrip突破ssl加密截获密码

2015-11-10

2012年下半年软件评测师上午试题(含大部分答案)

此试题缺少最后五道英语题,不过英语自己好好练吧,应该没什么大关系

2013-11-06

2012年下半年软件评测师上午试题

此试题缺少最后五道英语题,不过英语自己好好练吧,应该没什么大关系

2013-11-06

inflator教程

wpa/wpa2无线破解工具inflator的使用说明,大概在半天的时间内可以破解。

2013-07-15

iPad商标权案(苹果告唯冠)终审开庭全记录

iPad商标权案(苹果告唯冠)终审开庭全记录,对这案子有兴趣的可以看看

2013-07-14

iPad商标权案(苹果告唯冠)一审民事判决书

iPad商标权案(苹果告唯冠)一审民事判决书,对这个案子有兴趣的可以看看

2013-07-14

Java技术教程.基础篇.pdf 李克宏主编 清华大学教材

这本书是清华大学的本科教材,非常清晰的扫描版,希望对大家有用

2012-09-23

网络工程师01-07年的试题和答案

网络工程师01-07年的试题和答案 网络工程师01-07年的试题和答案 网络工程师01-07年的试题和答案

2011-10-25

zywall 2 plus 说明书

一款防火墙zywall 2 plus 的说明书

2009-09-02

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

TA关注的人

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