首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android实现进程保活方案解析

Android 9.0 进一步改进了省电模式的功能并加入了应用待机分组,长时间不用的 App 会被打入冷宫;另外,系统监测到应用消耗过多资源时,系统会通知并询问用户是否需要限制该应用的后台活动。...2、我们常常将保活方法进行分类:白色保活、灰色保活、黑色保活。...灰色保活 开启前台Service,开启另一个Service将通知栏移除,其oom_adj值还是没变的,这样用户就察觉不到app在后台保活。...黑色保活 1 像素activity保活方案,监听息屏事件,在息屏时启动个一像素的activity,提升自身优先级; Service中循环播放一段无声音频,伪装音乐app,播放音乐中的app优先级还是蛮高的...新建一个播放音乐的Service类,将播放模式改为无限循环播放。

9.3K30

Android常见面试题

(java类被编译成.class文件后,会通过一个dx工具将所有的.class文件转换成一个.dex文件,然后dalvik虚拟机会从其中读取指令和数据 3、常量池已被修改为只使用32位的索引,以 简化解释器...黑、白、灰 **三种,其大致的实现思路如下: 黑色保活:不同的app进程,用广播相互唤醒(包括利用系统提供的广播进行唤醒) 白色保活:启动前台Service 灰色保活:利用系统的漏洞启动前台Service...黑色保活 所谓黑色保活,就是利用不同的app进程使用广播来进行相互唤醒。...当应用创建的时候,就会在主线程中创建handler对象, 我们通过要传送的消息保存到Message中,handler通过调用sendMessage方法将Message发送到MessageQueue中,Looper...(4)JNI生成动态链接库.so文件 (5)将动态链接库复制到java工程,在java工程中调用,运行java工程即可 31、RecyclerView和ListView的区别 RecyclerView

1.2K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Android点九图总结以及在聊天气泡中的使用

    1.4 Android 点九图的基本使用 Android中使用点九图,主要有三种形式,使用res文件夹中的点九图,使用assets文件夹中的点九图以及使用网上拉取的点九图,下面分别看看它们如何使用。...1.5 Android点九图的解析原理 Android并不是直接使用点九图,而是在编译时将其转换为另外一种格式(见3.1),这种格式是将其四周的黑色像素保存至Bitmap类中的一个名为mNinePatchChunk...接下来说说这9个步骤中的遇到问题: 步骤2中,给9点图画黑线,必须是纯黑色像素,且图片的四个角必须为透明像素点,否则Android会无法识别,且在步骤3中将无法转换。...将png图片中四周黑线所代表的信息解析成Res_png_9patch,存放到png的一个数据块中,然后把黑线抹去,黑线所表示的信息就保存在了如上的Res_png_9patch结构中。...这里的mNinePatchChunk信息,实际上是在编译时,编译器将png图片中四周黑线所代表的信息解析成Res_png_9patch,存放到png的一个数据块中,然后j将tag设置为“npTc”,接着在使用时

    5.8K42

    ATX自动化测试学习

    非常感谢 Xiaocong He,他将这个想法实现了出来(见xiaocong/uiautomator),原理是在手机上运行了一个http rpc服务,将uiautomator中的功能开放出来,然后再将这些...Uiautomator是Google提供的用来做安卓自动化测试的一个Java库。...功能很强,可以对第三方App进行测试,获取屏幕上任意一个APP的任意一个控件属性,并对其进行任意操作,但有两个缺点:1. 测试脚本只能使用Java语言 2. 测试脚本必须每次被上传到设备上运行。...主要是安卓环境 Android25亿台设备,180+个厂商;(图截自谷歌大会) 蓝色柱状图:Android;黑色:ios; ?...pytest pytest是python的第三方测试框架,是基于unittest的扩展框架,比unittest更简洁,更高效。

    3.7K31

    融云技术分享:融云安卓端IM产品的网络链路保活技术实践

    这方面更详细的技术文章,请见:《为何基于TCP协议的移动端IM仍然需要心跳保活机制?》...一种是通过 Java 里的 Timer 来实现。...最后,安卓从 6.0 版本引入了 Doze 模式,并提供了新的闹钟设置方法 setExactAndAllowWhileIdle() ,通过该方法设置的闹钟时间,系统会智能调度,将各个应用设置的事务统一在一次唤醒中处理...这方面更详细的技术文章,请见: 《应用保活终极总结(一):Android6.0以下的双进程守护保活实践》 《应用保活终极总结(二):Android6.0及以上的保活实践(进程防杀篇)》 《应用保活终极总结...1.3)根据文件锁互斥原理,监视 Java 进程存活状态:若被杀, Linux 层成功持有文件,则通过 exec() 命令,打开一个纯 Linux 的可执行文件,开启一个 Daemon 进程, 该进程因为从

    3K40

    Android面试题大全

    空进程 Android线程间通信有哪几种方式 Devik进程和Linux进程的区别 进程保活(不死进程) 当前Android进程保活手段主要分为 黑、白、灰 三种 黑色保活 白色保活 灰色保活 Android...有序广播接收者们的优先级 有序广播的接收者们的优先级用于确定接收的先后顺序,优先级越高的接收者,将更优先接收到广播,反之,则更靠后接收到广播。...只不过Android平台上虚拟机运行的是Dex字节码,一种对class文件优化的产物,传统Class文件是一个Java源码文件会生成一个.class文件,而Android是把所有Class文件进行合并、...进程保活(不死进程) 当前Android进程保活手段主要分为 黑、白、灰 三种 黑色保活:不同的app进程,用广播相互唤醒(包括利用系统提供的广播进行唤醒) 白色保活:启动前台Service 灰色保活...文件存储数据 文件存储方式是一种较常用的方法,在Android中读取/写入文件的方法,与Java中实现I/O的程序是完全一样的,提供了openFileInput()和openFileOutput()方法来读取设备上的文件

    1.3K50

    Android面试题含答案「建议收藏」

    (java类被编译成.class文件后,会通过一个dx工具将所有的.class文件转换成一个.dex文件,然后dalvik虚拟机会从其中读取指令和数据 3、常量池已被修改为只使用32位的索引,以 简化解释器...其大致的实现思路如下: 黑色保活 :不同的app进程,用广播相互唤醒(包括利用系统提供的广播进行唤醒) 白色保活 :启动前台Service 灰色保活 :利用系统的漏洞启动前台Service 所谓黑色保活...当应用创建的时候,就会在主线程中创建handler对象 我们通过要传送的消息保存到Message中,handler通过调用sendMessage方法将Message发送到MessageQueue中,Looper...19、热修复的原理 我们知道Java虚拟机 —— JVM 是加载类的class文件的,而Android虚拟机——Dalvik/ART VM 是加载类的dex文件, 而他们加载类的时候都需要ClassLoader...NDK 在ndk项目中JNI接口的设计 使用C/C++实现本地方法 JNI生成动态链接库.so文件 将动态链接库复制到java工程,在java工程中调用,运行java工程即可 33、RecyclerView

    1.4K20

    新手必看:PS修图的基本步骤

    一、ps修图基本步骤 1.打开ps,处理图片; 2.找到工具栏中的矩形选择选框; 3.将第1步选作为选区,找到编辑功能中的填充; 4.选择颜色为前景色; 5.相同方法选中第2步选区,使用内容感知移动工具...将编辑选项中的“全图”改为“黄色”,并向左拖动饱和度滑块,从而降低图片中的黄色数值。 2.3减红。将编辑选项中的“全图”改为“红色”,并向左拖动饱和度滑块,从而降低图片中的红色数值。...然后使用套索工具选取眼白处,并进行适当的羽化处理 3.4使用曲线对该选区进行提亮处理,并稍稍降低饱和度,这样眼睛的改造就完成了. 3.5添加腮红。建立新图层,将前景色设置为粉色,背景色设置为黑色。...并使用渐变工具中在画面中由左至右进行拖动(设置渐变工具为从前景到透明),渐变出需要的腮红。之后,为新图层添加图层蒙版,并将蒙版填充为黑色,最后使用画笔工具在蒙版上进行涂擦,从而添加腮红。...改变腮红图层的混合模式,将默认的“正常”改为“线性加深”可达到加深图层中色彩的作用。 3.7复制腮红。将已制作好的腮红复制到左侧脸部。 3.8嘴唇上色。

    6.8K30

    app防盗——一键加密

    Android apk资源文件中存放了大量的应用UI界面图片、UI布局文件、隐私数据文件等,保障这些文件的安全性一直困扰着开发者,接下来将具体分析一下目前市场上常见的资源文件保护方案。...我们知道,Android应用在编译过程中aapt工具会对资源文件进行编译、打包,并生成一个resource.arsc文件,resource.arsc文件相当于一个文件索引表,记录了很多跟资源相关的信息。...多出的这些文件则是360加固保的APP加固和资源加密相关的文件。 图6中可以看出,之前res目录下的很多文件都不见了,查看了一下留下的几个目录的文件,里面的文件是APP的图标。...,并隐藏起来; 3) 实现外壳程序 要想让APP正常运行,则需要为使用资源保护后的APP实现一个外壳程序,360加固保本身具有APP加固功能,因此他们可以将资源文件保护的恢复程序集成到360加固保的加固壳程序里面...缺点:安全强度有限:仅对资源文件进行重命名并不能有效的保护资源文件,破解者依然能可查看并修改资源文件内容,assets文件保护难度较大:如需对assets目录下的资源进行混淆,则需要修改java程序代码或者

    2.1K50

    Android面试大纲(集合)

    ,它提供get方法和put方法来获取缓存和添加缓存,其最重要的方法trimToSize是用来移除最少使用的缓存和使用最久的缓存,并添加最新的缓存到队列中 3、计算inSampleSize public...,可以通过AsyncTask内部持有外部Activity的弱引用同时改为静态内部类或在onDestroy()中执行AsyncTask.cancel()进行修复 18 内存管理面试题 1、Android内存管理机制...,然后将分数高的进程判定为bad进程,杀死并释放内存 OOM_ODJ:判别进程的优先级 3、Android保活方案 利用系统广播拉活 利用系统Service机制拉活 利用Native进程拉活 利用JobScheduler...3、配置Lint 创建Lint.xml到根目录下,自定义Lint安全等级等 在Java文件中可以使用@suppressLint(“NewApi”)来忽视Lint的报错 在xml文件中可以使用tool:ignore...是一种基于JVM的编程语言 对Java的一种拓展,比Java更简洁 Kotlin支持函数式编程 Kotlin类和Java类可以相互调用 2、Kotlin环境搭建 直接在Plugin中下载Kotlin插件即可

    1.1K20

    史上最强Android保活思路:深入剖析腾讯TIM的进程永生技术

    问题5: 这4个进程到达是什么如何相互监听的呢? 通过不断分析被杀与重启前后的规律与特征,得出进程与监听文件的关系图: ?...TIM保活还有改进空间, 提供保活变种方案,这样的话,上面的调试代码也拦截不了其对flags修改为ONEWAY的过程。...6.8 分析思路归纳 我们来回顾一下上面的过程: 1)先有了初步分析过程中对一些常规套路的可能性的排除,并嗅到callingPid=0的异常举动; 2)沿着蛛丝马迹,不断反复尝试杀进程,从中寻找更多的规律...2)不采用系统框架中startService的Binder框架代码,而是自身在Native层通过自己去查询获取BpActivityManager代理对象, 然后自己实现startService接口,并修改为...(截止2019年前)》 《一文读懂即时通讯应用中的网络心跳包机制:作用、原理、实现思路等》 《融云技术分享:融云安卓端IM产品的网络链路保活技术实践》 《正确理解IM长连接的心跳及重连机制,并动手实现

    3.2K10

    9.png

    重要声明,该制作工具均需要搭建java运行环境,就是下载jdk安装,并在计算机属性中搭建环境变量,具体操作本帖就不讲了,  网上找一下如何搭建环境变量就有了。 ...4、将鼠标放在白色边框,点住左键不放拖动,会出现黑色线条如图:  ?             ...3、将你要修改的framework-res.apk(当然也可以是其他系统程序apk文件,如music.apk)重命名为update.apk,并放到c:盘根目录(必须放c:,因为后面执行的批处理文件编写的是在...在Android的设计过程中,为了适配不同的手机分辨率,图片大多需要拉伸或者压缩,这样就出现了可以任意调整大小的一种图片格式“.9.png”。...这种图片是用于Android开发的一种特殊的图片格式,它的好处在于可以用简单的方式把一张图片中哪些区域可以拉伸,哪些区域不可以拉伸设定好,同时可以把显示内容区域的位置标示清楚。

    1.2K100

    安卓-碎片的使用入门

    图 4.2 平板的新闻列表  因此,更好的设计方案是将新闻标题列表界面和新闻详细内容界面分别放在两个碎片中,然后在同一个活动里引入这两个碎片,这样就可以将屏幕空间充分地利用起来了,如图4.3所示。...>  可以看到,我们将这个布局的背景色设置成了绿色,并放置了一个TextView用于显示一段文本。  ...android:id="@+id/left_fragment"知道这个碎片控件实现类是谁,而是android:name来控制的),而类文件LeftFragment.java则重写了方法onCreateView.../LinearLayout>  这个布局文件的代码和right_fragment.xml中的代码基本相同,只是将背景色改成了黄色,并将显示的文字改了改。...其实这就更简单了,在每个碎片中都可以通过调用getActivity() 方法来得到和当前碎片相关联的活动实例,代码如下所示: MainActivity activity = getActivity()

    1.4K20

    设置matlab保存的图片没有白边,matlab如何保存figure中去掉白边的图片「建议收藏」

    一般saves保存的图像存在白边,可以采用imwrite对图像进行保 … Matlab学习笔记 figure函数 Matlab学习笔记 figure函数 matlab中的 figure 命令,能够创建一个用来显示图形输出的一个窗口对象...下面讲NSData: NSdata的概念 1.使用文件时需要频繁地将 … 随机推荐 File类的createNewFile()与createTempFile()的区别...文件中set PRODUCTION_MODE=true改为set P … 把Mvc4项目部署到虚拟目录之后找不到control想到的文件路径规范的问题 最近部署的项目的时候由于端口不够用,想到了把Mvc...最近前端界闹的沸沸扬扬的技术当属react了,加上项目需要等等原因,自己也决定花些时间来好好认识 … android 工程里缺少 R.java 文件原因和解决方法 作为新手,学习android...可是导入android源码后,基本都有错误,R.java也不会自 … Python3.0科学计算学习之绘图(三) matplotlib对象: 使用matplotlib的pyplot模块,可以供用户直接使用最重要的绘图命令

    8.6K10

    一个人单挑滴滴Android开发团队?

    adapter 文件夹:相对复杂一点的adapter会从类文件中取出单独保存到 adapter文件夹,比如左侧侧滑菜单中 recycler view的adapter。...把工具类从Activity 或者 Fragment 中extract 出来放到统一的utils 文件夹,会让你的代码更清晰,可读性更强。 引导界面 先看下真机上的效果: ?...首先:要从照片中找到司机证件区域,也就是上证件边缘红色的区域 /** * 找到图像中的证件区域 * 在RGB色彩空间求取驾驶员证件的图像梯度,之后在此图像上做二值化,从而通过轮廓(contour...上图中MD5 C语言文件下面还有一个native-lib.cpp 文件,是NDK 在 Android studio 里帮助我们生成的。它可以认为是Java方法调用C语言方法的桥梁。...中String类型对应的JNI jstring类型,下面在方法体中,就可以使用对传入的加密前字符串进行加密的C语言运算了,并把加密完成的 jstring类型结果返回给java层。

    1.8K51

    5-3 绘制图形

    图5-9 平面饼图 这里绘制的是二维饼图,如果希望画出立体效果,可以使用前面介绍的方法画出圆柱体的效果,立体的部分采用黑色阴影处理即可。...,可以将饼图绘制改为循环语句实现。...案例学习:在图形框中打开图像并添加文字,保存到文件 本次实验目标是在图像上添加文字或自定义图形,并保存到文件。 ?...当我们在图像上绘制完成时,没有将绘制的结果同步显示在控件的图像中,这时如果我们保存文件,能够看到文件中的变化,如果我们希望同时在窗体控件中看到变化,以确定是否保存修改。...u 实验步骤(3): 到这里,我们只是在界面上看到了对于图像所作的修改,再打开文件,还没有将修改保存到文件,最后需调用Image类的Save方法将图片框中修改过的图像对象保存到文件,再次打开文件查看结果

    1.5K10

    Android OCR文字识别 实时扫描手机号(极速扫描单行文本方案)

    ; 然后就是使用了,这里我的字体库文件都放在 “根目录/Download/tessdata“中 解析图片代码如下: public class OcrUtil { //字体库路径,此路径下必须包含...,就节省了整张图片旋转和第二次裁切的时间 2、旋转、二值化 图片,过滤无用内容 接下来的旋转和二值化,是纯像素算法,如果能放在jni中实现更好,经过我测试效率会快好几倍(Java大概10-50ms,...还是上面文章中的方法 rotateToDegrees(bmp, 90) 旋转之后,就是一张方向正确的识别区域了,现在需要做的就是二值化,将图片变为黑白两色,提高识别率(因为要遍历所有的像素,为了节省时间...* * 转为二值图像 并判断图像中是否可能有手机号 * * @param bmp 原图bitmap * @param tmp 二值化阈值 超出阈值的像素置为白色,...final int PX_UNKNOW = -2; /** * 转为二值图像 并判断图像中是否可能有手机号 * * @param bmp 原图bitmap

    9.3K21

    应用保活终极总结(二):Android6.0及以上的保活实践(进程防杀篇)

    原作者:“裂缝中的阳光dg”,本文现已重新修订并整理发布,感谢原作者的无私分享。...其他如三星C9(Android 6.0)保活较好,特别是当一键清理时,"咕咚会自动启动,估计是使用了进程守护策略,而三星使用的是原生系统,因此结果你懂得;360F4(Android 6.0)保活很差,不愧是流氓中的战斗机...,以更流氓的方式干掉流氓APP。...ScreenManager.java: (因源码太长,详见:http://www.52im.net/thread-1138-1-1.html) 讲解一下: Java中为对象的引用分了四个级别:强引用、...都包含一个Window对象,在Android中Window对象通常由PhoneWindow来实现,PhoneWindow将一个DecorView设置为整个应用窗口的根View,它作为窗口界面的顶层视图,

    4.2K21

    iOS点九图NinePatch解析

    方案 首先得选择,自然是点九图(NinePatch)来实现需求。点九图是android系统中特有的图片格式,包含有定义可拉伸区域的信息,用于做局部拉伸。...该点九图有上下左右四个边有一条1像素的黑线,用于标注拉伸区域和显示内容区域,例如 1号黑色条位置向下覆盖的区域表示图片横向拉伸时,只拉伸该区域; 2号黑色条位置向右覆盖的区域表示图片纵向拉伸时,只拉伸该区域...制作包含4个黑边点九图top1.9.png; 使用android sdk 目录下的 aapt 工具将点九图转化为png图片 top1_out.png; aapt工具是android sdk目录下,可以在...,写入到结果png图片中的chunkdata数据中,并且去掉4个1像素的黑边,这样得到一张可用于手机展示的点九图片。...aapt处理点九图相关代码在tools/aapt/Images.cpp,以及从android源码中,对应点九图NinePatch解析代码以及头文件定义, ResourceTypes.h https://

    1.1K30

    如何优雅的从网络加载点九图?

    如何处理从网络加载点九的图 我们开发Android应用的时候,当需要适配可拉伸的背景,我们会使用.9.png的图。通常我们是放在res目录下的,这种方式我们很容易做到。...标记位置 含义 左-黑线 纵向拉伸区域 上-黑线 横向拉伸区域 右-黑线 纵向显示区域 下-黑线 横向显示区域 1.2 Android是如何加载点九图的 当我们将点九图放在res目录下,Android...不是直接去加载点九图的,而是在编译的时候将其转换成另一种格式,这种格式是将其四周的黑色像素保存在Bitmap类中的mNinePatchChunk的byte[]数组中,并去掉四周一像素的宽度;在使用的时候...使用上述方案的注意事项: 步骤2画黑线必须是纯黑色像素,且图片的四个角必须为透明像素点,否则Android无法识别,且在步骤3中将无法转换 步骤3中,可以使用Android SDK自带工具aapt进行转换...\output表示目标目录 步骤4中,上传过程中不能对转换后的图进行压缩,因为转换后的点九图的黑线信息被保存到了png图片的辅助数据快中,这部分数据在压缩的过程中会消失,导致最终客户端拉取到的图片不是点九图

    2.2K20
    领券