自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

流水mpc

路漫漫其修远兮,吾将上下而求索

  • 博客(215)
  • 资源 (3)
  • 收藏
  • 关注

转载 java面试题大全(整理版)

转载自:https://blog.csdn.net/yq714588944/article/details/79435816这几天在网上搜集各种java面试题:一是为了自己能复习方便,二是为了分享给大家~~题目都是来自网上大佬的分享,感谢大佬们的贡献~~(持续更新中...)1、面向对象的特征有哪些方面?- 抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么。- 继承:继承是从已...

2021-01-06 10:40:44 361 1

原创 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 558

原创 Android监听SettingsProvider的数据变化

在Android应用和framework层面添加监听器去监听SettingsProvider的数据变化。监听类:SettingsObserver class SettingsObserver extends ContentObserver { SettingsObserver(Handler handler) { super(handler); } void observe() { // Ob...

2020-10-20 14:58:59 2436

转载 Linux Platform驱动模型(二) _驱动方法

在Linux设备树语法详解和Linux Platform驱动模型(一) _设备信息中我们讨论了设备信息的写法,本文主要讨论平台总线中另外一部分-驱动方法,将试图回答下面几个问题:如何填充platform_driver对象? 如何将驱动方法对象注册到平台总线中?正文前的一点罗嗦写驱动也有一段时间了,可以发现,其实驱动本质上只做了两件事:向上提供接口,向下控制硬件,当然,这里的向上并不是直接提供接口到应用层,而是提供接口给内核再由内核间接的将我们的接口提供给应用层。而写驱动也是有一些套路可寻的...

2020-07-27 16:13:06 341

转载 安卓系统签名修改

1.安卓签名和密钥Android OS 映像在两个地方使用加密签名:映像中的所有 .apk 文件都必须经过签名。Android 软件包管理器通过下列两种方式使用 .apk 签名: 更换应用时,必须使用与旧应用相同的密钥对其签名,才能存取旧应用的数据。无论是通过覆盖 .apk 来更新用户应用,还是使用安装在 /data 下的新版本应用来覆盖系统应用,这一点都适用。 如果两个或多个应用想要共享同一个用户 ID(方便共享数据等),则必须使用相同的密钥对它们进行签名。 必须使用符合系统预期的密钥

2020-06-16 10:24:47 5597

转载 如何在Ubuntu上检查一个软件包是否安装

如果你正在管理Debian或者Ubuntu服务器,你也许会经常使用dpkg 或者 apt-get命令。这两个命令用来安装、卸载和更新包。在本篇中,让我们看下如何在基于DEB的系统下检查是否安装了一个包。要检查特定的包,比如firefox是否安装了,使用这个命令:dpkg -s firefox示例输出:Package: firefox Status: install ok installed Priority: optionalSection: web Installed-Size: 9.

2020-06-15 16:47:07 803

转载 安卓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 2803 3

转载 HashMap和ArrayMap对比

HashMap和ArrayMap各自的优势1.查找效率:HashMap因为其根据hashcode的值直接算出index,所以其查找效率是随着数组长度增大而增加的。ArrayMap使用的是二分法查找,所以当数组长度每增加一倍时,就需要多进行一次判断,效率下降。所以对于Map数量比较大的情况下,推荐使用2.扩容数量:HashMap初始值16个长度,每次扩容的时候,直接申请双倍的数组空间。ArrayMap每次扩容的时候,如果size长度大于8时申请size*1.5个长度,大于4小于8时申请8个,小于

2020-06-08 18:18:00 1204

转载 scp和rsync的实际应用

近段时间工作需要做了些scp和rsync的异地安全备份,整理了一下,希望多大家有用。scp的备份指南:需求:用scp自动完成异地文件的定时copy难点:如何让异地主机建立安全的信任关系1、在A机器上用root运行ssh-keygen,将生成/root/.ssh/identity和/root/.ssh/identity.pub两个文件;2、在A机器上运行scp /root/.ssh/identity.pub [email protected]:/upload/.ssh/authorized_keys(

2020-05-26 17:19:43 460

转载 repo mirror 服务搭建实现快速init

repo mirror 服务搭建当一个项目的代码量非常大,发现使用repo sync从远程服务器端拉取的速度非常慢,这个时候制作一个repo mirror镜像仓库就非常有用1、从代码服务器端通过mirror的方式下载整套源代码,一般把mirror放在服务器的根目录下面cd /mntmkdir mirrorcd mirrorrepo init -u Gerrit_URL -b branch -m manifest.xml --mirrorrepo sync2、mirror镜像下载完成后,在

2020-05-26 14:10:36 711

转载 repo manifest, 如何导出并使用清单文件?

本文主要介绍’repo manifest’命令的使用,如果只对结论感兴趣,请直接跳转到 [第4节 总结]。说明:本文基于repo v1.12.37和repo launcher 1.23文中manifest文件有时也称为清单文件文中对40个字符的commit id进行截断处理,例如将"221a1acee8047ae65c2d5980e3a7c5f73362c59d"截断为8个字符的"221a1ace"1. manifest文件之痛有没有遇到过这样的场景:例如,想冻结某个时间点调试好的代码,

2020-05-25 17:50:44 860

转载 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 330

转载 谈一谈Binder的原理和实现一次拷贝的流程

面试官: 谈一谈Binder的原理和实现一次拷贝的流程心理分析:能问出该问题,面试官对binder的理解是非常深入的。想问求职者对Android底层有没有深入理解求职者:应该从linux进程通信原理的两次拷贝说起,然后引申为什么binder却只有一次拷贝 ,最后阐述内核空间 与用户空间的定义1 Linux 下传统的进程间通信原理了解 Linux IPC 相关的概念和原理有助于我们理解 Binder 通信原理。因此,在介绍 Binder 跨进程通信原理之前,我们先聊聊 Linux 系统下传统的

2020-05-09 15:53:29 1225 2

翻译 Android P Implementing Health

实现“运行状况”所有healthd代码均已重构为 [email protected] 和libhealthservice,然后均已经过修改以实现 [email protected] HAL。这两个库通过 [email protected] 进行静态关联,这使得 [email protected] 能够完成之前由healthd完成的作业(即运行healthd_mainloop并完成轮询)。在 i...

2020-04-26 12:13:25 661

翻译 Android P battery health overview

Android 运行状况Android 9 引入了从 [email protected] HAL 升级的主要版本android.hardware.healthHAL 2.0。新版 HAL 具有以下优势:框架代码和供应商代码之间的区别更清楚。 弃用了不必要的healthd守护进程。 供应商对运行状况信息报告进行自定义的自由度更高。 更多设备运行状况信息(不仅包括电池信息)。要求搭载 A...

2020-04-26 12:11:25 605

转载 大家一起看一看Android P将引入哪些安全性改进

根据Google的Android开发团队发布的新版本Android系统概述,下一个Android版本(Android P或Android 9.0)大家应该很快就可以“吃”上了。文件表示,Google在2018年第三季度的版本推送计划将在三个月左右的时间内实施完成:AndroidP的测试目前即将结束,第一个候选版本也已经在7月份正式发布了。作为一名安全行业的从业人员,我们有必要看一看Andr...

2020-04-23 12:05:34 155

转载 Android System Property 解析

一 System Property 今天在折腾HDMI 显示,为Setting提供接口,遇到非常多跟Android系统属性相关的问题.因此,顺便分析和总结一些.  android的代码中大量存在:SystemProperties.set()/SystemProperties.get();通过这两个接口能够对系统的属性进行读取/设置,顾名思义系统属性,肯定对整个系统全局共享。通...

2020-04-13 16:54:19 812

转载 深度分析mmap:是什么 为什么 怎么用 性能总结

目录mmap基础概念mmap内存映射原理mmap和常规文件操作的区别mmap优点总结mmap相关函数mmap使用细节性能总结mmap基础概念mmap是一种内存映射文件的方法,即将一个文件或者其它对象映射到进程的地址空间,实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的一一对映关系。实现这样的映射关系后,进程就可以采用指针的方式读写操作这一段内存,而系统会自动回...

2020-04-13 16:22:18 174

转载 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 397

转载 android sepolicy 最新小结

两种模式SELinux initialization标签、规则和域实现 SELinuxneverallow 规则编译sepolicySource filesPlatform public sepolicyPlatform private sepolicyPlatform private mappingsepolicy兼容性Object ownership and labeli...

2020-04-13 15:42:49 751

转载 聊一聊 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 705

转载 Android 基础知识:Android 应用权限详解

这篇文章为大家系统的梳理一下 Android 权限相关的知识,在日常开发中,我们都用过权限,但是对于权限的一些细节我们可能掌握的还不够全面,这篇文章会全面的为大家介绍权限相关的知识。当然,本篇文章依然是参考了 Google 的官方文档:应用权限。本文目录一、认识 Android 权限(一)Android 系统为什么需要权限?Android 系统设置权限的目的是保护 Android 用...

2020-04-11 14:24:02 928

转载 Android应用开发基本知识点汇总

Activity一 生命周期4种状态 running / paused / stopped / killed生命周期 Activity启动 onCreate -> onStart -> onResume点Home返回主界面 onPause -> onStop再次回到原Activity onRestart -> onStart -> onRe...

2020-04-11 14:21:19 427

转载 Android Framework解析

众所周知,Android是一个基于Linux实现的操作系统。但对于Linux内核来说,Android也仅仅只是一个运行在内核之上的应用程序,与其他运行在内核之上的应用程序没有任何区别。所以Android也需要运行环境,需要Linux内核在启动完成后加载Android Framework运行所需要的资源。当Framework完成初始化后才能继续启动相应的APK应用程序。Framework启动分析...

2020-04-10 17:41:29 451

转载 Android中使用Handler造成内存泄露的分析和解决

(一)什么是内存泄露?Java使用有向图机制,通过GC自动检查内存中的对象(什么时候检查由虚拟机决定),如果GC发现一个或一组对象为不可到达状态,则将该对象从内存中回收。也就是说,一个对象不被任何引用所指向,则该对象会在被GC发现的时候被回收;另外,如果一组对象中只包含互相的引用,而没有来自它们外部的引用(例如有两个对象A和B互相持有引用,但没有任何外部对象持有指向A或B的引用),这仍然属于不...

2020-04-10 14:42:51 112

转载 [Android5.1]开机动画desc.txt描述文件的分析

在上篇文章《Android5.1开机画面显示工作流程分析》中,详细分析了Android开机动画显示的工作流程。其中提到了每个开机动画压缩文件中必须包含一个描述文件desc.txt,该文件用来描述开机动画具体是怎么样显示的。这篇文章就对desc.txt进行一个详细的解读。1 desc.txt文件格式分析desc.txt文件由若干行组成,每一行代表一种描述。下面以一个具体的例子为例,具体说明...

2020-04-10 12:18:35 598

转载 [Android5.1]开机动画显示工作流程分析

网上有很多关于android开机动画显示的分析,但大部分是针对于android的早期版本。在android5.1中,开机动画显示的工作流程做了一些修改,下面就针对android5.1,分析一下开机动画的启动、显示和停止的整个过程。1. bootanimation应用的启动过程Android系统开机动画的显示是由bootanimation应用实现的。bootanimation在init....

2020-04-10 12:18:00 522

转载 【android】开机动画animation定制

每个手机开机的时候都会有一个开机动画和铃声不同的开机动画都有不同的效果,不管是OEM还是运营商都会对这个logo有严格的要求,当然,自己如果想DIY制作自己的动画也可以参考下面的方法通常,animation的文件存放在\\system\media\bootanimation.zip中,文件路径并不绝对,比如QCOM和MTK就不同,可以在代码中搜索关键字来查下路径修改开机动画就是修改bo...

2020-04-10 12:07:27 272

转载 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 278

转载 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 675

转载 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 299

转载 Android APK瘦身方法小结

众所周知,APP包体的大小,会影响推广的难度,用户不太喜欢下载太大的APP,同类型同等功能的APP中往往是包体小的更受用户的青睐,所以降低包体是一项非常必要的事情,也是最近公司的APP需要降低包体,所以总结下自己知道的降低包体的方法。一. 压缩图片基本每个APP都需要用到相当多的图片,而这些图片在包体中了占据了不少的空间,特别是有些图片大小到达上百k的,加几张就吃不消,所以要对图片进行一定...

2020-04-10 11:12:43 655

转载 apk打包时去除无用资源

使用android studio的同学可以做以下操作来去除无用资源1.检测无用资源的方式:用android lint中Unused Resource操作方法:等待一会你就可以看到自己项目中有哪些资源是没有被用到的了2打包时删除无用资源build.gradle中设置:android{…buildTypes{release {minifyEnabl...

2020-04-10 11:10:26 698

转载 OOM 内存溢出的原因和处理方法

1 OOM的可能原因?数据库的cursor没有及时关闭构造Adapter没有使用缓存contentviewRegisterReceiver()与unRegisterReceiver()成对出现未关闭InputStream outputStreamBitmap 使用后未调用recycle()static等关键字非静态内部类持有外部类的引用 context泄露2 处理oom的优化方法...

2020-04-05 21:34:11 560

转载 OOM 内存溢出的原因和处理方法

1 OOM的可能原因?数据库的cursor没有及时关闭构造Adapter没有使用缓存contentviewRegisterReceiver()与unRegisterReceiver()成对出现未关闭InputStream outputStreamBitmap 使用后未调用recycle()static等关键字非静态内部类持有外部类的引用 context泄露2 处理oom的优化方法...

2020-04-05 16:29:39 268

转载 关于OOM的那些事儿

最近查找了很多关于OOM,甚至于Java内存管理以及JVM的相关资料,发现这方面的东西太多了,竟有一种眼花缭乱的感觉,要想了解全面的话,恐非一篇文章能说清的,因此按照自己的理解整理了一篇,剩下的还需要继续学习。1)什么是OOM?OOM,全称“Out Of Memory”,翻译成中文就是“内存用完了”,来源于java.lang.OutOfMemoryError。看下关于的官方说明:Throw...

2020-04-05 16:07:52 113

转载 更改系统给APP应用分配最大的内存空间

网上查了很多,主要是一.从APP自身改<application.....android:label="XXXXXXXXXX"android:largeHeap="true">.......</application>、二.更改系统源码1.--------------------------------...

2020-04-05 15:28:50 981

转载 获取进程名的两种方法

方案一:目前网上主流的方案public static String getProcessName(Context cxt, int pid) { ActivityManager am = (ActivityManager) cxt.getSystemService(Context.ACTIVITY_SERVICE); List<RunningAppProcess...

2020-04-05 15:16:33 1516

转载 Android多进程总结一:生成多进程(android:process属性)

前言正常情况下,一个apk启动后只会运行在一个进程中,其进程名为apk的包名,所有的组件都会在这个进程中运行,以下为DDMS的进程截屏:com.biyou.multiprocess为进程名,也是apk的包名,但是如果需要将某些组件(如Service,Activity等)运行在单独的进程中,就需要用到android:process属性了。我们可以给android的组件设置android:p...

2020-04-05 15:14:13 339

转载 Android输入设备配置文件(.idc文件)

1. 何为idc?idc(Input Device Configuration)为输入设备配置文件,它包含设备具体的配置属性,这些属性影响输入设备的行为。对于touch screen设备,总是需要一个idc文件来定义其行为。Android基于输入设备驱动汇报的事件类型和属性来检测和配置大部分输入设备的能力。然而有些分类是模棱两可的,如:多点触摸屏(multi-touch touch s...

2020-04-04 00:25:59 572

Project2007 user guide

Microsoft Project 2007 user guide Microsoft Project 2007 user guide Microsoft Project 2007 user guide

2018-07-02

c++编译思想

Thinking in c++ (c++编译思想)比较适合初学

2012-09-02

模拟电子技术课件

电子基础 模拟电子技术课件 电子设计工程师的基础

2012-01-11

空空如也

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

TA关注的人

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