前言 下面要介绍的恶意软件可以读取Android手机中其他app的文件元数据,例如文件的名称、大小、以及最后修改日期等等。 如果文件名中含有敏感信息的标识,那么这款恶意app会将这份文件识别为敏感文件,并且还可以对其进行暴力破解攻击。 除此之外,它还可以通过分析其他app私有文件的大小和最后修改日期这两部分数据,来对其他app的使用情况进行实时监控。 实际上,从Android操作系统的诞生之日起,其文件系统中就一直存在着权限问题。当我将该漏洞提交给Google公司之后,Google将这一漏洞归类为了“低
Random-access memory(RAM)在任何软件开发环境都是稀有资源,在移动操作系统物理内存有限的情况下将显得更加珍贵.虽然Android的Dalvik虚拟机优化了内存回收机制,但我们也要关注你的app的内存分配和释放。
MainActivity如下: package come.on; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/118050.html原文链接:https://javaforall.cn
今天碰到个问题,想获取某个已安装的包的大小,没找到合适的方法。搜索了一下,发现PackageManager里面有个getPackageSizeInfo方法,可惜是hide的,而且它执行之后,会将结果回调给IPackageStatsObserver的onGetStatsCompleted方法。后来想直接计算/data/app和/system/app里面的apk大小,可是有时候会碰到权限问题,需要root才可以获取大小。 再后来,我想起系统的设置里面有一个应用程序管理,它里面列出了所有程序的占用空间大小、数据大小和缓存大小。恩,这个就是突破口。 以前写过一篇获取其他包的Context ,这个东西是真有用,这个结合反射,可以做很多神奇的事情,比如今天的这个。
最近有大兄弟叫我「猴哥」,嗯哼,不错的称呼,赞一个。 今天周六,和许多公众号的态度不一样是,我的态度是「大兄弟们该钻研技术的还是要继续钻研的」。毕竟这么大段的时间才是最好的学习时间啊。 湿兄本职是做「Android开发」的,主要负责系统 App 和 Framework 层 的定制和开发。 这篇文章给大家分享5个我在 Android 开发中用到的工具 Apk,非常的顺手和方便。不夸张的说,使用这些 APK,真的能提升不少效率。而且纯净无广告,在此先感谢这些工具的开发者们。 ApkAnalyzer 顾明思义,「
在日常工作开发中,我们时长会遇到各种各样的需求,不部分需求是可以通过Android 原生的View来解决,而有一些是无法解决的,这时候我们就需要自定义View,我们先来看看本文中这个自定义View的演示效果图。
导语 这里是Android性能优化典范第6季的课程学习笔记,从被@知会到有连载更新,这篇学习笔记就一直被惦记着,现在学习记录分享一下,请多多指教包涵!这次一共才6个小段落,涉及的内容主要有:程序启动时间性能优化的三个方面:优化activity的创建过程,优化application对象的启动过程,正确使用启动显屏达到优化程序启动性能的目的。另外还介绍了减少安装包大小的checklist以及如何使用VectorDrawable来减少安装包的大小。 1. App Launch time 101 提高程序的启动速度
本文实例讲述了Android开发获取系统中已安装程序信息的方法。分享给大家供大家参考,具体如下:
1、运行Monkey进行压力测试: adb shell monkey -p cn.microinvestment.weitou --pct-touch 100 --ingore-crashes --throttle 1000 -s 100 -v -v 50 2、监控内存值,如果出现过大等递增异常则保存HPROF文件(hprof文件是Java 虚拟机的Heap快照)用于分析查看应用内存的命令: adb shell dumpsys meminfo cn.microinvestment.weitou(进程名) 如果发现内存过大,则保存HPROF文件:adb shell am dumpheap <进程名> <保存路径> 3、分析hprof文件 用工具MAT来查看,首先还要这个HPROF文件转换成MAT可读的文件 在Android SDK tool里面有个hprof-conv命令: hprof-conv <原HPROF文件路径> <转换后的HPROF路径> hprof-conv a.hprof b.hprof 4、用MAT工具打开转换后的HPROF文件 一般选择Leak Suspects Report(通过SQL语句来查询对象有没有被释放掉,如果有多个相同的对象,则会存在内存泄露的问题)
1、app本身的功能比如录像,录音,更新都会产生文件,需要清理 2、app的默认缓存地址cache
祝各位工程师,虎年大吉,2022年心想事成,想法几经改版,差点流产,还好最后坚持做了出来。
话不多说直接上图 📷 image.png 从图中可知,分为上下两部分,上部分是传统春联和福字,代表对大家的新年祝福,下部分是主要功能模块,包含红包金额、新年幸运签和是与不是。 采用Kotlin语言进行编写,涉及到的技术有:ConstraintLayout、Drawable、 自定义View、Android动画、Viewpager2、字体的设置和传感器的使用。 创意来源 这个创意的来源,主要是年纪大了,过年肯定要给侄子侄女发红包,哈哈哈,这回金额可以他们自己摇出来,具有互动和随机性比较好玩,为新年增添一
Android常见的自定义控件有三种方式: 继承View 继承原有的控件,在原有控件的基础上进行修改 重新拼装组合 今天先来简单说一说第一种也是最复杂的一种~~ 剩下的下次再说~~ 继承View,重写onDraw方法,但是注意采用这种方式需要自己在代码中来支持熟悉的wrap_content、padding属性。 1、想好需要自定义的属性,在values下创建一个attrs.xml,这里我就演示一个简单的颜色,自定义一个属性集合,命名为CustomView,有一个格式为color的属性custom_colo
React Native发布APP之签名打包APK ---- 用React Native开发好APP之后,如何将APP发布以供用户使用呢?一款APP的发布流程无外乎:签名打包—>发布到各store这两大步骤。本文将向大家分享如何签名打包一款React Native APP。 众所周知,Android要求所有的APP都需要进行数字签名后,才能够被安装到相应的设备上。签名打包一个Android APP已经是每一位Android开发者的家常便饭了。 那么如何签名打包一款用React Native开发的APP呢?
转载请著名出处 : http://blog.csdn.net/shulianghan/article/details/36438365
Google 发布了 Android Jetpack,帮助开发者加快应用开发速度。
本文讲述内容的完整代码实例见 https://github.com/mzlogin/CleanExpert。
如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
PMS,全称PackageManagerService,是用来获取Apk包的信息的。
在Android里,程序内存被分为2部分:native和dalvik,dalvik就是我们普通的Java使用内存,分析堆栈的时候使用的内存。我们创建的对象是在这里面分配的,对于内存的限制是 native+dalvik 不能超过最大限制. Android 原生系统一般默认16M,但是国内手机一般都是特殊定制的,都有修改系统的内存大小,所有有时候,要查看具体应用系统分配的内存大小,还是需要实际去测试的,
App性能测试中流量测试是其中重要的一项,网络场景(wifi、非wifi)、用户使用场景(页面加载流量、场景使用流量、待机流量),这些都是需要考虑的测试点。
① 主要作用 : BitmapRegionDecoder 可以从图像中 解码一个矩形区域 ;
安卓开发大军浩浩荡荡,经过近十年的发展,Android技术优化日异月新,如今Android 9.0 已经发布,Android系统性能也已经非常流畅,可以在体验上完全媲美iOS。 但是,到了各大厂商手里,改源码、自定义系统,使得Android原生系统变得鱼龙混杂,然后到了不同层次的开发工程师手里,因为技术水平的参差不齐,即使很多手机在跑分软件性能非常高,打开应用依然存在卡顿现象。另外,随着产品内容迭代,功能越来越复杂,UI页面也越来越丰富,也成为流畅运行的一种阻碍。
从操作系统的角度来说,内存就是一块数据存储区域,是可被操作系统调度的资源。在多任务(进程)的操作系统中,内存管理尤为重要,操作系统需要为每一个进程合理的分配内存资源。所以可以从操作系统对内存分配和回收两方面来理解内存管理机制。
本文介绍了Android App如何实现场景化性能测试,通过具体实践案例,讲解了如何利用Dart语言和AppScan TraceView工具进行代码分析和数据采集,并利用这些数据来定位解决内存泄漏问题。同时,也介绍了如何通过MAT来分析内存泄漏。
上一篇文章总结了下自定义View的几个步骤,如果还有不清楚的同学可以先去看看Android自定义View(一) ,这篇文章和大家分享一下自定义加载进度条,效果如下
Glide 开源库 : 官方建议凡是使用到 Bitmap 解码 , 显示 , 缓存等操作 , 直接使用 Glide 开源库进行上述操作 , 不建议直接操作 Bitmap 对象 ;
反编译(Decompilation)是将已编译的程序(比如二进制代码)转换回更高级别的编程语言代码的过程。这通常用于理解程序的工作原理,进行软件审计,恢复丢失的源代码,或者进行教学研究。反编译的难度和效果取决于原程序的编译过程中丢失了多少信息(比如变量名、注释等)。
在开发过程中常会遇见带阴影效果的控件,通过 SDK 提供的 CardView 和 android:elevation可以实现,也可以通过 .9 图实现。但是使用这两种方法会有一些弊端,比如:不可以控制阴影颜色,如果使用 .9 图片过多,会增加 APK 安装文件的体积。针对以上问题,自己写了一个为控件添加阴影的库 —- ShadowLayout。接下来就 ShadowLayout 展开本文,本文主要分为以下两个部分: 关于 ShadowLayout 的使用; 关于 ShadowLayout 的原理。 <!–
现在我们知道了Gradle如何工作,如何创建自己的Task以及Plugin,如何执行test任务,如何设置CI。这一章会包含一些小技巧,接下来会从以下Topic进行讨论:
常规的手段优化后,我们能解决基本的问题,但是我们得继续追求极致,本章将分享一些意想不到的手段。
这次想来讲讲断点续传,以前没相关需求,所以一直没去接触,近阶段了解了之后,其实并不复杂,那么也便来写一篇记录一下,分享给大伙,也方便自己后续查阅。
现在市面上对APP的安全合规管控越来越严格了,也就要求了APP在上架之前一定要做合规检测和加固处理。对APP就是加固的好处,可以提高APP的安全性,提高APP被逆向分析破解的门槛,同时通过加固保护可以提高过安全合规的检测。由于APP加固技术不断被攻破情况,因此加固技术也是不断在快速迭代的过程。现在市面上的加固产品的还是比较多的,并且各个加固技术产品都有其各自优缺点,但是加固产品的所采用技术去有很多共性的地方。下面就对加固和脱壳对抗方案做些梳理总结。
背景 随着微信新业务的不断增长,因 32 位设备上虚拟内存地址空间限制导致的内存分配失败问题也越来越突出。目前市场上的存量 32 位设备数量仍然较多,且预计还会继续存在一段时间。为了保障微信在这些设备上的可用性,我们尝试了一些常规优化手段,前期收效是显著的,但随着业务规模和数量的增长,虚拟内存的消耗速度越来越快,常规优化手段的收益也越来越低。要在这种趋势下继续缓解内存不足的问题,在常规优化手段的基础上就还需要一些能快速见效的办法,即标题里提到的“黑科技”。 这里还要特别感谢 simsun 大佬参与方案预研
09-29 13:35:41.884: E/SQLiteLog(20098): (10) Failed to do file read, got: 0, amt: 100, last Errno: 2 09-29 13:35:46.857: E/dalvikvm-heap(20098): Out of memory on a 31360016-byte allocation. 09-29 13:35:46.862: E/AndroidRuntime(20098): FATAL EXCEPTION: main 09-29 13:35:46.862: E/AndroidRuntime(20098): Process: com.example.nongmin, PID: 20098 09-29 13:35:46.862: E/AndroidRuntime(20098): java.lang.OutOfMemoryError 09-29 13:35:46.862: E/AndroidRuntime(20098): at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method) 09-29 13:35:46.862: E/AndroidRuntime(20098): at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:616) 09-29 13:35:46.862: E/AndroidRuntime(20098): at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:451) 09-29 13:35:46.862: E/AndroidRuntime(20098): at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:840) 09-29 13:35:46.862: E/AndroidRuntime(20098): at android.content.res.Resources.loadDrawable(Resources.java:2235) 09-29 13:35:46.862: E/AndroidRuntime(20098): at android.content.res.Resources.getDrawable(Resources.java:722) 09-29 13:35:46.862: E/AndroidRuntime(20098): at com.jarvis.message.ChatMain.onCreate(ChatMain.java:121) 09-29 13:35:46.862: E/AndroidRuntime(20098): at android.app.Activity.performCreate(Activity.java:5451) 09-29 13:35:46.862: E/AndroidRuntime(20098): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1097) 09-29 13:35:46.862: E/AndroidRuntime(20098): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2346) 09-29 13:35:46.862: E/AndroidRuntime(20098): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2443) 09-29 13:35:46.862: E/AndroidRuntime(20098): at android.app.ActivityThread.access$800(ActivityThread.java:157) 09-29 13:35:46.862: E/AndroidRuntime(20098): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1354) 09-29 13:35:46.862: E/AndroidRuntime(20098): at android.os.Handler.dispatchMessage(H
今天从操作系统的角度来闲聊一下代码开发过程中如何配合系统做内存管理。内存就是一块数据存储区域,是可被操作系统调度的资源。在多任务(进程)的OS中,内存管理尤为重要,OS需要为每一个进程合理的分配内存资源。所以可以从OS对内存和回收两方面来理解内存管理机制。
今天分享一篇匠心制作的《深入探索 Android 包体积优化》,内容比较多,因此分篇分享~
本文介绍了应用宝在Android平台支持Web自动化测试的方案,主要从架构设计、实现细节、流程梳理、支持Web自动化测试方案、Web多进程后的支持方案、Web自动化测试方案的插件化设计等方面进行了详细阐述。方案采用的主要技术包括Java、Android、JavaScript、Appium、Selenium、XWalk等,并介绍了如何通过插件化的方式实现Web自动化测试,以支持多进程、提高测试效率、保证测试准确性和稳定性,同时也为其他平台的Web自动化测试提供了参考和借鉴。
导语 智能手机发展到今天已经有十几个年头,手机的软硬件都已经发生了翻天覆地的变化,特别是Android阵营,从一开始的一两百M到今天动辄4G,6G内存。然而大部分的开发者观看下自己的异常上报系统,还是会发现各种内存问题仍然层出不穷,各种OOM为crash率贡献不少。Android开发发展到今天也是已经比较成熟,各种新框架,新技术也是层出不穷,而内存优化一直都是Android开发过程一个不可避免的话题。 恰好最近做了内存优化相关的工作,这里也对Android内存优化相关的知识做下总结。 在开始文章之前推荐下公
强引用:强引用是使用最普遍的引用。如果一个对象具有强引用,那垃圾回收器绝不会回收它。 当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足的问题。
在Android开发中经常会遇到tab页面,这样就需要tab+viewpager的方式来进行处理。谷歌官方提供了TabLayout,但是我们发现很多项目并不愿意使用,主要原因就是样式处理不够灵活。
小编说:随着移动端产品功能的逐渐增加,APP 的体积也不可避免地呈现上升趋势,如果不加以重视,几个版本迭代下来,可能你的 APP 体积会达到用户不能忍受的程度。
Tint 着色器的作用是是 可以使图片变色 , 使用该机制可以显示不同颜色的图片 ;
ProGuard是ADT自带的apk混淆器,它的用途有: 1、压缩apk包的大小,能删除无用的代码,并简化部分类名和方法名。 2、加大破解源码的难度,因为部分类名和方法名被重命名,使得程序逻辑变得难以理解。 代码混淆的规则在proguard-project.txt中编写,然后在project.properties补充规则文件的路径,如下所示:
App在前台,这个时候需要弹出一个对话框,提醒用户有新的消息,是否要查看,查看的话跳转到指定页面
各种设备种类和尺寸那么多,基于一种原型设计好的界面,换到另一种设备上去若不适配全乱套了。好在还是有很多方案的,这减少了不少的开发工作量。最流行的就是头条的方案了,使用也超级简单。然而,如果不想引入,还可以简单的一个工具类实现,原理类似于头条的方案。
领取专属 10元无门槛券
手把手带您无忧上云