自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 资源 (1)
  • 收藏
  • 关注

原创 android 中关于反射的使用

我自己在开发的时候经常会用到反射,不需要引用jar,就可以调用系统的相关方法,所以自己总结了一下反射的用法。首先是获取到class类Class<?> testReflection= Class.forName("com.jueme.android.rtasr.TestReflection");可以通过newInstance 来建立实例,这个方法不能传入参数,这里只能使用没有参数的public方法。如果这个实例是可以建立的,只是不能使用里面的成员,可以不用使用newInstanc.

2021-01-29 11:55:14 704 1

原创 android 禁止第三方apk安装和卸载

需求是这样的,客户要求提供系统的接口来控制apk的安装和卸载,接口如下boolean setAppInstallationPolicies(int mode, String[] appPackageNames)mode:应用名单类型0:黑名单(应用包名列表中的所有项都不允许安装);1:白名单(只允许安装应用包名列表中的项)。appPackageNames:应用包名列表。当appPackageNames为空时,取消所有已设定的应用。成功返回true;失败返回false。String[] ge

2020-11-11 18:55:02 3770 3

原创 android9.0 apk静默安装

封装一个类,调用系统的的方法进行静默安装public class PackageManagerCompatP { private static final String TAG = PackageManagerCompatP.class.getSimpleName(); @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) public static void install(Context context, String apk

2020-10-11 10:14:10 3506 13

原创 android 反射调用截屏方法

系统自带的截屏方法/** * Request a screenshot be taken. * * @param screenshotType The type of screenshot, for example either * {@link android.view.WindowManager.TAKE_SCREENSHOT_FULLSCREEN} * or

2020-09-16 10:14:43 1043

原创 android第三方app怎样调用NVRAM

要操作NVRAM,必须具有系统app的权限。我在系统的里面找到读写MAC地址相关的实现,首先是读的方法private String getMacAddrFromNvram() { StringBuffer nvramBuf = new StringBuffer(); try { int i = 0; String buff = null; INvram agent = INvram.getService(); if (agen

2020-07-06 11:41:36 1876 3

原创 android源码批量删除apk

有时候需要批量屏删除系统的应用,如果去mk中一个一个去删除很麻烦,而且不好客制化,可以利用LOCAL_OVERRIDES_PACKAGES这个属性,建立一个remove_unused_module的文件夹,然后里面放这个mk文件。include $(CLEAR_VARS)LOCAL_MODULE := remove_unused_moduleLOCAL_MODULE_TAGS := optionalLOCAL_MODULE_CLASS := FAKE # 指定编译输出的目录为 $(PROD

2020-07-02 20:15:35 612 5

原创 android 获取wifi和移动网络信号强度

1. 获取wifi信号强度可以直接监听广播MyReceiver receiver = new RssiReceiver();IntentFilter intentFilter = new IntentFilter(WifiManager.RSSI_CHANGED_ACTION);registerReceiver(receiver,intentFilter);class MyReceiver extends BroadcastReceiver { @Override public

2020-06-02 10:59:55 4216

原创 as怎样签名

在build.gradle添加signingConfigs的配置项signingConfigs { debug { v1SigningEnabled true v2SigningEnabled true keyAlias 'key0' keyPassword '12345678' storePassword ...

2020-04-23 11:21:51 958

原创 android如何获取RAM和ROM使用情况

1.获取ram大小两种方法:第一从是从MemoryInfo中获取:private void getRamInfo1(){ ActivityManager manager = (ActivityManager) getSystemService(ACTIVITY_SERVICE); ActivityManager.MemoryInfo info = new ActivityM...

2020-04-21 17:00:16 3435 1

原创 android 设置sim卡流量上限,获取sim卡实时流量,清除所有流量数据

设置sim卡流量上限,获取sim卡实时流量在系统的设置里面是有的,首先来看下系统的设置是怎样实现功能的。关于这个功能的类DataUsageSummary.java,先看一下设置流量上限的方法 private void setPolicyLimitBytes(long limitBytes) { if (LOGD) Log.d(TAG, "setPolicyLimitBytes...

2019-12-25 18:30:42 1689

原创 android 怎样删除sim卡中的联系人

这个功能我看了不少的资料,但总是删除不成功,我是在mtk 6.0上进行开发的。首先是通过"content://icc/adn/"来进行删除的,我发现这个根本就不行, public void deleteSIMContact(String name, String number) { String where = "tag='" + name + "'"; wh...

2019-12-24 15:21:49 1573

原创 android apk网络程序怎么bind少于1024的端口

对于 1024以内的端口,默认只提供给系统使用,外部应用是没有权限使用的,如果想要外部访问不带8080 ,则需要在服务端,设置一条如下iptable 指令;把端口号设置为80就可以省略不写。iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080 // 8080 是服务器绑定的端口号,也可以改换...

2019-12-24 11:49:56 1688

原创 android 关于SystemProperties的使用

SystemProperties在android系统里面使用的很广泛,用来保存一些简单的数据,使用起来非常简单SystemProperties.set("persist.test.flycom", "1");SystemProperties.get("persist.test.flycom", "2"); 还可以获取Boolean,Int,Long值 /** ...

2019-07-08 15:58:40 2008

原创 android 9.0 SytemUI锁屏界面日期不显示问题

发现在第一次开机时,锁屏界面是有日期显示的,然后解过一次锁,日期就不在显示了。是否显示在KeyguardSliceView.java里面控制的,private void showSlice() { Trace.beginSection("KeyguardSliceView#showSlice"); if (mPulsing || mSlice == n...

2019-04-16 17:53:47 948

原创 android 关于prop属性

android通过SystemProperties的set和get方法来控制很多东西,一般上层添加一个控制开关可以使用这个方法,在系统里面存在很多个prop文件。它们分别是system/build.prop,system/etc/prop.default,vendor/build.prop,vendor/default.prop。下面分别来说下这几个文件的构成。1.system/build.p...

2019-03-22 14:58:28 3482 4

原创 Android GMS P测试与O测试变化及注意事项

GMS P的测试已经开始一段时间了,这里记录一下跟O的不同之处,资料主要来自MTK官网。一、Case数量增加(以Pgo项目为例,64bit项目double) a、CTS测试增加8万条,module增至320 b、增加CTS-INSTANT测试项目,module 48,1.3万条(13338)、64bit 13338,以实际为准; c、VTS测试增加约2...

2019-02-22 16:10:23 2410

原创 android的overlay机制

android 在很早时候就引入了overlay机制,目的是为了方便客制化,不需要修改源码,只需要修改overlay里的东西,就可以达到修改的目的。overlay分为两种,静态的overlay和动态的overlay。下面简单来说下这两种overlay:静态的overlay :这种overlay比较简单,把资源文件放在device目录对应的项目下面,原理就是在编译时直接引用overlay下的资源...

2019-02-16 11:51:02 4218

原创 android odex的反编译

odex 是 Optimized dex 的缩写,是优化后的dex文件,通过将 apk 中的 dex 文件进行 odex 优化,可以提升程序的启动速度,同时减小空间的占用odex 文件依赖系统中已经编译好的系统模块,一般是 /system/framwork 目录下的 jar 包,目的也是为了提高虚拟机的运行速度,可以说从 class 到 dex 是针对 Android 平台的一种通用优化,odex...

2019-01-28 11:25:41 1090

原创 android 8.0客制化壁纸的位置

在8.0之前的版本,overlay的frameworks资源都会编译到framework-res.apk。但是在8.0的系统,客制化的资源,像壁纸,把framework-res.apk反编译出来,并不在里面。这个问题困扰我一段时间,无意间发现out目录下vendor\overlay\framework-res__auto_generated_rro.apk这个apk。从名字可以大概知道它的作用,把...

2018-12-06 14:58:43 1123

原创 android 工厂测试TP测试的问题

所谓的TP测试,就是测试TP有没有问题,一般都是通过划线来检验。很多公司用的都是类似于下面的,在方格上面移动手指,方格变成色,说明这个地方的TP没有问题。但是存在这样的问题,当手指移动速度过快时,有些方格没有变颜色,这给工厂生产测试时带来了一定的麻烦,因为他们测试的速度比较快,又要去重新划线,浪费时间。我研究了一下这部分的源码,发现主要原因是View的onTouchEvent响应速...

2018-12-06 11:17:08 5432 4

原创 android 内置第三方apk

这个功能比较容易实现,只要把apkf放到$(TARGET_OUT_VENDOR)/operator/app目录下面LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE := FacebookLOCAL_MODULE_TAGS := optionalLOCAL_SRC_FILES := Facebook.apk...

2018-11-08 16:01:18 6432

原创 android 添加灭屏手势动画功能

 首先解释一下这个功能,在灭屏时,在屏幕上面进行一些滑动的操作,实现一些功能,像亮屏,进入apk。还是直接上图吧,看的清楚点。下面来说下实现这个的思路。这个功能需要驱动上报键值,比如说我在屏幕上画了一个V,驱动就要向上面上报一个事件,所有的上报事件都在PhoneWindowManager.java里面处理。@Overridepublic int interceptKeyBe...

2018-10-24 11:11:59 933 1

原创 android 常用的adb命令

显示最上层Activity的名字 adb shell dumpsys activity | findstr "mFocusedActivity" 启动一个activity adb shell am start -n com.example.test.testactivtiy/com.example.test.testactivtiy.MainActivity 发送一个广播 adb s...

2018-08-27 14:51:12 520

原创 Android8.0 遇到的坑

1.广播问题取消了大部分静态注册的广播,如果非要使用静态的广播,发送广播的时候必须指明接收广播的包名和类名。当然也必须在AndroidManifest.xml里面注册Intent it = new Intent("com.example.test.broadcast");it.setComponent(new ComponentName("com.example.test", ...

2018-08-24 17:48:51 3047

原创 android 怎样让apk默认有权限

很多内置到系统的apk,在第一次使用时会弹出权限的窗口。而系统的一些apk默认就有权限,说明系统在初始化的时候就给了这些apk权限。在framework层找到了相关的代码,都在DefaultPermissionGrantPolicy.java中,主要是grantDefaultSystemHandlerPermissions这个函数private void grantDefaultSystem...

2018-08-22 16:47:06 2891

原创 android 关于系统签名

当需要一些权限的时候就会用到系统的签名,有两种方式可以获得系统签名。首先必须在AndroidManifest.xml的manifest节点中添加 android:sharedUserId=”android.uid.system”。1.利用系统的签名文件在android6.0和之前的版本可以用这条命令,java -jar out/host/linux-x86/framework/signapk.j...

2018-07-11 10:41:17 2678 8

原创 android 调用第三方so库

首先要知道这个第三方的so库是不是按jni标准写的,如果是那就简单了,直接写个native调用就行了。如果不是那就比较麻烦了,必须要把这个so库里面的函数封装一下在调用,下面进入正题。假设这个库放在/system/vendor/lib下面,名字为libtest.so,我们要调用的方法是get_status,我分别列出在第三方的app和framewok怎样调用。首先是在第三方app的调用,这里的核心...

2018-07-06 20:54:18 7240

原创 android 屏幕方向

Activity的方向可以在AndroidManifest.xml文件里面去配置 android:screenOrientation;如果需要主动去设置方向可以调用setRequestedOrientation方法;当机身发生改变时屏幕的方向也会发生改变。试想这样一种情况,假如我要在只要屏幕发生改变时去执行一些操作,这个可能是AndroidManifest配置的,也有可能是Activity主动调用...

2018-06-30 15:28:06 142

原创 android 修改launcher行数和列数

Launcher3桌面的行数和列数都是在InvariantDeviceProfile.java和DeviceProfile.java中动态计算的,xml中无法配置。Note:L版本无InvariantDeviceProfile.java,是DynamicGrid.java,但是计算方法都是一样的。InvariantDeviceProfile中用InvariantDeviceProfile来配置各种...

2018-06-30 14:27:42 850

原创 android 如何匹配layout资源

安卓里面是怎样根据不同的分辨率匹配不同的布局文件,布局文件夹有两种不同的命名方式layout-sw360dp和layout-1280x720.这两种命名方式有什么区别,如果同时存在,会优先加载哪一个?先来说下layout-1280x720,这个很简单就是根据分辨率来进行适配,但是我在全面屏的手机上面测试不成功。我建了一个layout-1280x640的文件夹,运行在分辨率为1280x640的机器上...

2018-04-26 18:45:57 967

原创 android 如何实现icon动态旋转

碰到客户的这样一个需求,点击icon后,前景的icon开始旋转,背景的icon不动,就是这样一个效果通过第三方的方法是不可能实现的,我这里是通过修改系统launcher的代码来实现。实现思路是在launcher中找到显示icon图标代码,并把这个图标覆盖掉。很多第手机的时钟icon是可以动态变化的,好在公司已经有人实现这个功能,可以借鉴.....,哈哈哈我这里先把时钟动态icon的实现说明下,需要...

2018-04-26 11:42:32 2921

原创 android 调用系统的蓝牙分享文件

有时我们需要调用系统的蓝牙分享文件,代码如下: //调用android分享窗口Intent intent = new Intent(Intent.ACTION_SEND);intent.setType("*/*");intent.setPackage("com.android.bluetooth");intent.putExtra(Intent.EXTRA_STREAM, Uri.from...

2018-04-20 15:01:18 10083 4

原创 android 怎样设置铃声

做了一个音乐播放器,要求有设置铃声的功能,在网上找了很多代码都没有效果,于是自己研究了一下。 public void setMyRingtone(String path){ //如果没有权限,必须先给权限。 if (!Settings.System.canWrite(mContext)){ //ToastUtil.longTips("请在该设置...

2018-04-20 14:49:40 917

原创 android 怎样修改系统launcher中应用的图标

有些已经封装好的apk,怎样替换图标,这个需求好像有点奇怪。话不多说,直接上代码。在AllAppsList.java有个add方法,会把所有安装的apk信息都保存到一个ArrayList里面 public void add(AppInfo info) { if (mAppFilter != null && !mAppFilter.shouldShowApp(info.compo

2018-01-24 16:59:24 1410

原创 android 应用自启管理

因项目的需要,做一个自启管理的功能,管理其它app的自启动。看到这个功能的时候我有点无从下手,大多数第三方的管理app是没有这个功能的,网上关于这个功能的例子也很少,没有什么好的参考。只能自己研究了。很多的app的自启都是靠监听系统的广播,像最典型的就是开机广播。所以我想到的方法是禁止应用收听相关的广播来实现。有一个方法可以禁止掉android四大组件的使用。public void setComp

2017-12-19 18:03:29 8306 9

原创 android 怎样在appwidget中使用动画

最近做项目是碰到这样一个需求,点击app的icon,app的icon要动起来,正常情况下这个是不可能实现的。想了半天可以通过appwidget

2017-11-28 16:01:44 1648

原创 Android系统添加一个自己的service

前段时间找工作,被面试官问到这样一个问题,怎样在系统里面添加一个service。我只知道个大概,自己还没有去加过。这次有空,就试着自己添加,并记录下来。我是在android 7.0系统添加的,不同系统代码位置可能会有差异。 1.设计接口 在/frameworks/base目录下新建一个文件夹addservice, 在addservice目录下新建Android.mk和/java/android

2017-09-30 10:37:48 4201 2

原创 android如何获取操作外置sd卡的权限

因项目的需要,最近在做一个类似es文件管理器的app.但是在操作外置sd卡的时候碰到了各种权限的问题,现在很多的手机都没有外置sd卡,网上说的很多都是内置SD卡的权限。<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name="android.

2017-09-22 20:09:00 8211

原创 android 以太网和wifi共存

要解决这个问题,首先必须解决一个网络起来后另一个网络被踢掉的问题,在网络的核心类ConnectivityService.java找到了调用把nai.asyncChannel.disconnect()函数注释后, 另一个网络不会被踢掉两个网络可以共存,通过命令dumpsys connectivity,可以看到当前正在使用的网络 通过命令 ip ru 查

2017-06-28 09:17:02 19587 12

应用自启管理

该功能所有的源码,需要的朋友可以下载,主要是禁用了一些app去接收系统的广播。

2018-09-01

空空如也

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

TA关注的人

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