
android
流水mpc
这个人不是特别懒,不过他什么也没说。
展开
-
apk签名原理之Linux命令行计算hash-digest
鉴于网络较少资料描述apk签名中的hash摘要具体验证计算方法,本文主要通过Ubuntu命令行验证计算基于apk v1或v1+v2版本的MANIFEST.MF及CERT.SF中的hash-digest。See more inhttps://gitlab.com/androidapkutils/apks/-/tree/master/signature-versions, below data are based on v1 and v1+v2 in this repository.######..原创 2020-10-28 12:03:44 · 663 阅读 · 0 评论 -
Android监听SettingsProvider的数据变化
在Android应用和framework层面添加监听器去监听SettingsProvider的数据变化。监听类:SettingsObserver class SettingsObserver extends ContentObserver { SettingsObserver(Handler handler) { super(handler); } void observe() { // Ob...原创 2020-10-20 14:58:59 · 2702 阅读 · 0 评论 -
安卓系统签名修改
1.安卓签名和密钥Android OS 映像在两个地方使用加密签名:映像中的所有 .apk 文件都必须经过签名。Android 软件包管理器通过下列两种方式使用 .apk 签名: 更换应用时,必须使用与旧应用相同的密钥对其签名,才能存取旧应用的数据。无论是通过覆盖 .apk 来更新用户应用,还是使用安装在 /data 下的新版本应用来覆盖系统应用,这一点都适用。 如果两个或多个应用想要共享同一个用户 ID(方便共享数据等),则必须使用相同的密钥对它们进行签名。 必须使用符合系统预期的密钥转载 2020-06-16 10:24:47 · 7000 阅读 · 0 评论 -
安卓9.0 编译报错问题
原来的编译服务器编译7.1和8.1 的都没有问题,下载9.0的代码,编译的时候报错;报错这个提示真是看的我一脸懵逼;cat /home1/luoyalong/workspace/MT8788-P/mt8788/out/target/product/tb8788p1_64_bsp/obj/BOOTLOADER_OBJ/../../appsboothd.mbn /home1/luoyalong/workspace/MT8788-P/mt8788/out/target/product/tb8788p1_64_转载 2020-06-15 16:36:06 · 3459 阅读 · 3 评论 -
Android zygote 进程的启动过程分析
zygote进程在 Android 开发中属于比较底层的内容,然而要透彻的理解 AMS、WMS 和 IPC 等,不可避免的要先理解zogyte进程,因此本文即作为对自己的学习记录,也想分享出来和遇到同样问题的读者交流。在正式内容开始之前,我建议读者朋友下载部分源代码备用,分别是:platform/framework/baseplatform/system/coreplatform/packages/apps/Launcher3我们可以到 Android 源码托管站下载:https://andr转载 2020-05-15 15:09:32 · 374 阅读 · 0 评论 -
谈一谈Binder的原理和实现一次拷贝的流程
面试官: 谈一谈Binder的原理和实现一次拷贝的流程心理分析:能问出该问题,面试官对binder的理解是非常深入的。想问求职者对Android底层有没有深入理解求职者:应该从linux进程通信原理的两次拷贝说起,然后引申为什么binder却只有一次拷贝 ,最后阐述内核空间 与用户空间的定义1 Linux 下传统的进程间通信原理了解 Linux IPC 相关的概念和原理有助于我们理解 Binder 通信原理。因此,在介绍 Binder 跨进程通信原理之前,我们先聊聊 Linux 系统下传统的转载 2020-05-09 15:53:29 · 1298 阅读 · 2 评论 -
Android P Implementing Health
实现“运行状况”所有healthd代码均已重构为 health@2.0-impl 和libhealthservice,然后均已经过修改以实现 health@2.0 HAL。这两个库通过 health@2.0-service 进行静态关联,这使得 health@2.0-service 能够完成之前由healthd完成的作业(即运行healthd_mainloop并完成轮询)。在 i...翻译 2020-04-26 12:13:25 · 765 阅读 · 0 评论 -
Android P battery health overview
Android 运行状况Android 9 引入了从 health@1.0 HAL 升级的主要版本android.hardware.healthHAL 2.0。新版 HAL 具有以下优势:框架代码和供应商代码之间的区别更清楚。 弃用了不必要的healthd守护进程。 供应商对运行状况信息报告进行自定义的自由度更高。 更多设备运行状况信息(不仅包括电池信息)。要求搭载 A...翻译 2020-04-26 12:11:25 · 720 阅读 · 0 评论 -
Android system property系统属性服务详解
1 libc中的实现首先在init进程启动的时候property_init()->__system_property_area_init()->map_prop_area_rw()以读写的形式打开/dev/__properties__ 这个文件 const int fd = open(property_filename, ...转载 2020-04-13 15:57:47 · 461 阅读 · 0 评论 -
android sepolicy 最新小结
两种模式SELinux initialization标签、规则和域实现 SELinuxneverallow 规则编译sepolicySource filesPlatform public sepolicyPlatform private sepolicyPlatform private mappingsepolicy兼容性Object ownership and labeli...转载 2020-04-13 15:42:49 · 908 阅读 · 0 评论 -
聊一聊 android properties
文章目录1 Property contexts1.1 plat_property_contexts1.2 nonplat_property_contexts2 property的访问约束2.1 非system分区的访问约束限制2.2 system分区的访问约束限制3 Property Set Permission3.1 开始基于SELinuxpolicy3.2 对于APK set...转载 2020-04-13 15:35:54 · 1021 阅读 · 0 评论 -
Android 基础知识:Android 应用权限详解
这篇文章为大家系统的梳理一下 Android 权限相关的知识,在日常开发中,我们都用过权限,但是对于权限的一些细节我们可能掌握的还不够全面,这篇文章会全面的为大家介绍权限相关的知识。当然,本篇文章依然是参考了 Google 的官方文档:应用权限。本文目录一、认识 Android 权限(一)Android 系统为什么需要权限?Android 系统设置权限的目的是保护 Android 用...转载 2020-04-11 14:24:02 · 1234 阅读 · 0 评论 -
Android应用开发基本知识点汇总
Activity一 生命周期4种状态 running / paused / stopped / killed生命周期 Activity启动 onCreate -> onStart -> onResume点Home返回主界面 onPause -> onStop再次回到原Activity onRestart -> onStart -> onRe...转载 2020-04-11 14:21:19 · 472 阅读 · 0 评论 -
Android Framework解析
众所周知,Android是一个基于Linux实现的操作系统。但对于Linux内核来说,Android也仅仅只是一个运行在内核之上的应用程序,与其他运行在内核之上的应用程序没有任何区别。所以Android也需要运行环境,需要Linux内核在启动完成后加载Android Framework运行所需要的资源。当Framework完成初始化后才能继续启动相应的APK应用程序。Framework启动分析...转载 2020-04-10 17:41:29 · 493 阅读 · 0 评论 -
Android中使用Handler造成内存泄露的分析和解决
(一)什么是内存泄露?Java使用有向图机制,通过GC自动检查内存中的对象(什么时候检查由虚拟机决定),如果GC发现一个或一组对象为不可到达状态,则将该对象从内存中回收。也就是说,一个对象不被任何引用所指向,则该对象会在被GC发现的时候被回收;另外,如果一组对象中只包含互相的引用,而没有来自它们外部的引用(例如有两个对象A和B互相持有引用,但没有任何外部对象持有指向A或B的引用),这仍然属于不...转载 2020-04-10 14:42:51 · 138 阅读 · 0 评论 -
【android】开机动画animation定制
每个手机开机的时候都会有一个开机动画和铃声不同的开机动画都有不同的效果,不管是OEM还是运营商都会对这个logo有严格的要求,当然,自己如果想DIY制作自己的动画也可以参考下面的方法通常,animation的文件存放在\\system\media\bootanimation.zip中,文件路径并不绝对,比如QCOM和MTK就不同,可以在代码中搜索关键字来查下路径修改开机动画就是修改bo...转载 2020-04-10 12:07:27 · 383 阅读 · 0 评论 -
[Android5.1]开机动画desc.txt描述文件的分析
在上篇文章《Android5.1开机画面显示工作流程分析》中,详细分析了Android开机动画显示的工作流程。其中提到了每个开机动画压缩文件中必须包含一个描述文件desc.txt,该文件用来描述开机动画具体是怎么样显示的。这篇文章就对desc.txt进行一个详细的解读。1 desc.txt文件格式分析desc.txt文件由若干行组成,每一行代表一种描述。下面以一个具体的例子为例,具体说明...转载 2020-04-10 12:18:35 · 835 阅读 · 0 评论 -
Intent中的四个重要属性——Action、Data、Category、Extras
在Java代码中或AndroidMainfest.xml中我们会设置Activity添加属性时,为使用Intent(或IntentFilter).Intent中的四个重要属性——Action、Data、Category、ExtrasIntent是联系Activity,Service,Broadcast之间的纽带,其作用并不仅是简单的数据传递。通过自带的属性,可以方便的完成很多较为复杂的操作...转载 2020-04-10 12:04:14 · 323 阅读 · 0 评论 -
android 安装目录介绍
一、安装路径在哪?Android应用安装涉及到如下几个目录:system/app系统自带的应用程序,无法删除。data/app用户程序安装的目录,有删除权限。安装时把apk文件复制到此目录。data/data存放应用程序的数据。data/dalvik-cache将apk中的dex文件安装到dalvik-cache目录下(dex文件是dalvik虚拟机的可执行文件,其大小约为原始apk...转载 2020-04-10 11:34:36 · 761 阅读 · 0 评论 -
APK瘦身最佳实践(Google I/O '17)
本文内容主要来自Google I/O 17 Best Practices to Slim Down Your App Size (Google I/O '17),有删改。介绍现有的和Google新带来的一些给APK瘦身的方法(其实是拿之前做分享的PPT改的),文中使用Android Studio 3.0 预览版。因文本内容的局限性,不能展示实际操作演示,想看具体的演示请点击上面的链接。开始之...转载 2020-04-10 11:27:42 · 411 阅读 · 0 评论 -
Android APK瘦身方法小结
众所周知,APP包体的大小,会影响推广的难度,用户不太喜欢下载太大的APP,同类型同等功能的APP中往往是包体小的更受用户的青睐,所以降低包体是一项非常必要的事情,也是最近公司的APP需要降低包体,所以总结下自己知道的降低包体的方法。一. 压缩图片基本每个APP都需要用到相当多的图片,而这些图片在包体中了占据了不少的空间,特别是有些图片大小到达上百k的,加几张就吃不消,所以要对图片进行一定...转载 2020-04-10 11:12:43 · 699 阅读 · 0 评论 -
apk打包时去除无用资源
使用android studio的同学可以做以下操作来去除无用资源1.检测无用资源的方式:用android lint中Unused Resource操作方法:等待一会你就可以看到自己项目中有哪些资源是没有被用到的了2打包时删除无用资源build.gradle中设置:android{…buildTypes{release {minifyEnabl...转载 2020-04-10 11:10:26 · 846 阅读 · 0 评论 -
OOM 内存溢出的原因和处理方法
1 OOM的可能原因?数据库的cursor没有及时关闭构造Adapter没有使用缓存contentviewRegisterReceiver()与unRegisterReceiver()成对出现未关闭InputStream outputStreamBitmap 使用后未调用recycle()static等关键字非静态内部类持有外部类的引用 context泄露2 处理oom的优化方法...转载 2020-04-05 21:34:11 · 676 阅读 · 0 评论 -
OOM 内存溢出的原因和处理方法
1 OOM的可能原因?数据库的cursor没有及时关闭构造Adapter没有使用缓存contentviewRegisterReceiver()与unRegisterReceiver()成对出现未关闭InputStream outputStreamBitmap 使用后未调用recycle()static等关键字非静态内部类持有外部类的引用 context泄露2 处理oom的优化方法...转载 2020-04-05 16:29:39 · 322 阅读 · 0 评论 -
关于OOM的那些事儿
最近查找了很多关于OOM,甚至于Java内存管理以及JVM的相关资料,发现这方面的东西太多了,竟有一种眼花缭乱的感觉,要想了解全面的话,恐非一篇文章能说清的,因此按照自己的理解整理了一篇,剩下的还需要继续学习。1)什么是OOM?OOM,全称“Out Of Memory”,翻译成中文就是“内存用完了”,来源于java.lang.OutOfMemoryError。看下关于的官方说明:Throw...转载 2020-04-05 16:07:52 · 136 阅读 · 0 评论 -
更改系统给APP应用分配最大的内存空间
网上查了很多,主要是一.从APP自身改<application.....android:label="XXXXXXXXXX"android:largeHeap="true">.......</application>、二.更改系统源码1.--------------------------------...转载 2020-04-05 15:28:50 · 1068 阅读 · 0 评论 -
获取进程名的两种方法
方案一:目前网上主流的方案public static String getProcessName(Context cxt, int pid) { ActivityManager am = (ActivityManager) cxt.getSystemService(Context.ACTIVITY_SERVICE); List<RunningAppProcess...转载 2020-04-05 15:16:33 · 1634 阅读 · 0 评论 -
Android多进程总结一:生成多进程(android:process属性)
前言正常情况下,一个apk启动后只会运行在一个进程中,其进程名为apk的包名,所有的组件都会在这个进程中运行,以下为DDMS的进程截屏:com.biyou.multiprocess为进程名,也是apk的包名,但是如果需要将某些组件(如Service,Activity等)运行在单独的进程中,就需要用到android:process属性了。我们可以给android的组件设置android:p...转载 2020-04-05 15:14:13 · 382 阅读 · 0 评论 -
Android输入设备配置文件(.idc文件)
1. 何为idc?idc(Input Device Configuration)为输入设备配置文件,它包含设备具体的配置属性,这些属性影响输入设备的行为。对于touch screen设备,总是需要一个idc文件来定义其行为。Android基于输入设备驱动汇报的事件类型和属性来检测和配置大部分输入设备的能力。然而有些分类是模棱两可的,如:多点触摸屏(multi-touch touch s...转载 2020-04-04 00:25:59 · 898 阅读 · 0 评论 -
Android电容屏一些重要说明
1. 触摸屏设备分类1.1 多点触摸满足以下两个条件为多点触摸设备:1)输入设备驱动报告了ABS_MT_POSITION_X和ABS_MT_POSITION_Y存在2)输入设备没有任何手柄按钮1.2 单点触摸满足以下两个条件为单点触摸设备:1)输入设备不被归类为多点触摸设备2)输入设备报告存在ABS_X和ABS_Y绝对轴,以及存在BTN_TOUCH按键码1.3...转载 2020-03-31 18:22:54 · 397 阅读 · 0 评论 -
理解 Android Build 系统
前言Android Build 系统是 Android 源码的一部分。关于如何获取 Android 源码,请参照 Android Source 官方网站:http://source.android.com/source/downloading.html。Android Build 系统用来编译 Android 系统,Android SDK 以及相关文档。该系统主转载 2014-09-10 10:59:07 · 403 阅读 · 0 评论 -
SDK、JDK、JRE、JVM、JDT、CDT等之间的区别与联系
原文地址:http://blog.youkuaiyun.com/dreamcatchergo/article/details/8108467相信大多数java初学者被这些概念搞蒙过,它们之间到底有什么区别,又有什么联系呢?下面我将一一解开大家心中的谜团。 首先,给大家解释一下这些概念:1、SDK(Software DevelopKit,软件开发工具包)用转载 2015-08-30 18:11:19 · 676 阅读 · 0 评论 -
Android.mk中添加宏定义
在Boardconfig.mk中添加一个IS_FLAG := true由于Boardconfig.mk和各目录的Android.mk是相互关联的所以我们可以在Android.mk 中添加一个ifdef IS_FLAG LOCAL_CFLAGS += -DHHHHendif转载 2014-09-09 20:12:36 · 601 阅读 · 0 评论 -
adb uninstall卸载apk
[plain] view plaincopy arthur@arthur-laptop:~$ adb uninstall com.hase.bclm.client-2.apk Failure 后来发现原来卸载程序时,只adb uninstall 后边的参数不应该是.apk文件,而是包名,即AndroidMainifest.xml文件中节点下,packa原创 2014-11-20 19:16:33 · 864 阅读 · 0 评论 -
理解 Android Build 系统
理解 Android Build 系统强 波, Java 软件工程师, 富士通南大软件技术有限公司简介: Android Build 系统是用来编译 Android 系统,Android SDK 以及相关文档的一套框架。众所周知,Android 是一个开源的操作系统。Android 的源码中包含了许许多多的模块。 不同产商的不同设备对于 Android 系统的定制都是不转载 2015-12-17 19:54:01 · 474 阅读 · 0 评论 -
Android之 看“马达”如何贯通Android系统 (从硬件设计 --> 驱动 --> HAL --> JNI --> Framework --> Application)
在Android 2.3(Gingerbread) 系统的时候,我写过一篇关于“Android 震动马达系统“的文章,当时的Linux内核还是2.6版本的。写那篇文章的目的,是想彻底的了解从硬件到驱动,再到应用的运作流程。完成了之后,文章一直仍在草稿箱里面没发表;今天看到,决定整理一下,重新发表。目的是想和大家分享自己对Android系统的一点认识:以马达为代表,来考究“Android是如何一步步转载 2016-03-03 17:29:29 · 847 阅读 · 0 评论 -
Android Binder机制(超级详尽)
1.binder通信概述 binder通信是一种client-server的通信结构, 1.从表面上来看,是client通过获得一个server的代理接口,对server进行直接调用; 2.实际上,代理接口中定义的方法与server中定义的方法是一一对应的; 3.client调用某个代理接口中的方法时,代理接口的方法会将client传递的参数打包成为Pa转载 2016-03-19 14:55:03 · 365 阅读 · 0 评论 -
[Java并发包学习七]解密ThreadLocal
概述相信读者在网上也看了很多关于ThreadLocal的资料,很多博客都这样说:ThreadLocal为解决多线程程序的并发问题提供了一种新的思路;ThreadLocal的目的是为了解决多线程访问资源时的共享问题。如果你也这样认为的,那现在给你10秒钟,清空之前对ThreadLocal的错误的认知!看看JDK中的源码是怎么写的:This class provides thr转载 2016-03-25 12:07:40 · 413 阅读 · 0 评论 -
android的消息处理机制(图+源码分析)——Looper,Handler,Message
作为一个大三的预备程序员,我学习android的一大乐趣是可以通过源码学习google大牛们的设计思想。android源码中包含了大量的设计模式,除此以外,android sdk还精心为我们设计了各种helper类,对于和我一样渴望水平得到进阶的人来说,都太值得一读了。这不,前几天为了了解android的消息处理机制,我看了Looper,Handler,Message这几个类的源码,结果又一次被g转载 2016-03-25 14:19:26 · 345 阅读 · 0 评论 -
CTS Verifier
Android兼容性测试CTS Verifier-环境搭建、测试执行、结果分析 CTS Verifier算是CTS的一部分,需要手动进行,主要用于测试那些自动测试系统无法测试的功能,比如相机、传感器等。由于硬件配置或其他原因,不同手机上部分测试项目被隐藏,也就是说CTS Verifier中case的总数,取决于测试机支持哪些功能, CTS Verifier总共包含转载 2016-08-18 14:47:40 · 1984 阅读 · 0 评论