android 系统
文章平均质量分 72
zhangbijun1230
这个作者很懒,什么都没留下…
展开
-
android 系统 ---(1) 框架的代码组织介绍
1、Android系统的层次如下:2、项目目录简单分析如下:3、telphony目录文件描述CellIdentityCdma//描述电信通信标识CellIdentityGsm描述移动通信标识CellIdentityLte描述3G通信标识CellIdentityWcdma描述联通通信标识CellInfo手机信息(什么网络、是否已注册、记录时间)class CellInfoCdma extends C...转载 2018-03-14 17:48:11 · 1439 阅读 · 0 评论 -
android系统(9)---android工具网站
网站介绍:http://www.androiddevtools.cn/ AndroidDevTools收集整理Android开发所需的Android SDK、开发中用到的工具、Android开发教程、Android设计规范,免费的设计素材等。欢迎大家推荐自己在Android开发过程中用的好用的工具、学习开发教程、用到设计素材。如果你觉...转载 2018-03-30 10:39:22 · 2505 阅读 · 0 评论 -
Android 系统(11)---android 系统权限大全
收集到的android权限都很实用的(permission)大全1.android.permission.WRITE_USER_DICTIONARY允许应用程序向用户词典中写入新词2.android.permission.WRITE_SYNC_SETTINGS写入Google在线同步设置3.android.permission.WRITE_SOCIAL_STREAM读取用户的社交信息流4.andr...转载 2018-03-31 09:23:38 · 1206 阅读 · 0 评论 -
Android系统开发(3)---如何分析ANR Log的总结
如何分析ANR Log的总结引起ANR问题的根本原因,总的来说可以归纳为两类:应用进程自身引起的,例如:主线程阻塞、挂起、死循环应用进程的其他线程的CPU占用率高,使得主线程无法抢占到CPU时间片2.其他进程间接引起的,例如:当前应用进程进行进程间通信请求其他进程,其他进程的操作长时间没有反馈其他进程的CPU占用率高,使得当前应用进程无法抢占到CPU时间片分析ANR问题时,以上述可能的2种原因为线...转载 2018-03-31 22:13:20 · 2068 阅读 · 0 评论 -
Android 系统(19)---常用ADB 命令
一、常ADB命令1. adb连接成功验证命令:adb shell 命令:adb devices2.使用adb安装、卸载应用安装命令:adb install apk包名.apk举例:安装测试电池曲线的APK卸载命令:adb uninstall apk包名.apk3.使用adb复制文件从手机到电脑从手机复制到电脑命令:adb pull (文件手机路径) (电脑保存路径)举例:adb pull sdc...转载 2018-04-08 20:23:44 · 1242 阅读 · 0 评论 -
android系统(8)---android事件分发机制
前言Android事件分发机制是每个Android开发者必须了解的基础知识网上有大量关于Android事件分发机制的文章,但存在一些问题:内容不全、思路不清晰、无源码分析、简单问题复杂化等等今天,我将全面总结Android的事件分发机制,我能保证这是市面上的最全面、最清晰、最易懂的本文秉着“结论先行、详细分析在后”的原则,即先让大家感性认识,再通过理性分析从而理解问题;所以,请各位读者先记住结论,...转载 2018-04-01 08:56:11 · 432 阅读 · 0 评论 -
Android 系统调试(1)---禁止Selinux 的方法
在Android 开发过程中经常需要关闭Selinux 功能,通常关闭Selinux的方法如下:1.方式一 static bool selinux_is_disabled(void) { if (ALLOW_DISABLE_SELINUX) { if (access("/sys/fs/selinux", F_OK) != 0) { r...转载 2018-04-01 11:28:24 · 3770 阅读 · 1 评论 -
Android 系统(30)---如何用DDMS分析native memory leak
native程序如果发生内存问题,一般都比较难查,幸好DDMS有集成native memory leak(仅仅针对app,无法分析mediaserver等非app的进程)功能,通过DDMS可以观察native堆的使用状况以及每个chunk的调用栈等信息,有助于分析native memory leak。详情可参考:https://source.android.com/devices/tech...转载 2018-04-14 11:48:33 · 1640 阅读 · 0 评论 -
Android系统(31)--- 如何分析native memory leak
如何分析native memory leak 分析native程序发生内存泄漏问题,就需要对每一笔内存申请做记录,释放内存时清除记录,然后在认为存在内存泄漏时将记录提取出来分析,看看在哪段代码存在申请的内存没有释放。不过native进程申请内存的方法很多,可以直接通过mmap映射内存,也可以通过传统的堆分配函数malloc分配内存。这里我们只关注通过堆分配函数引起的内存泄漏。Android有...转载 2018-04-14 11:52:04 · 1117 阅读 · 1 评论 -
Android 系统(33)---sensor移植总结
Sensor作为Android系统的一个输入设备,对Android设备来说是必不可少的。Sensor主要报告G-Sensor、LightsSensor、ProximitySensor、TemperatureSensor等。由于各个Sensor的移植大同小异。本文就主要对G-Sensor和LightSensor进行说明。 Sensor的移植主要包括三部分的工作:Linux Kernel中相关设备的...转载 2018-04-14 14:01:58 · 867 阅读 · 0 评论 -
android 系统(20)---背光灯
图1这是MTK 2011年的图,下面给出MT6575/6577中此部分的框架图:图2再来看更体现一些细节的框架图:图3由此可见光系统从上到下依次分为java APP层、java 框架层、本地层和驱动层。下面就来看APP层,先给出调节背光的应用界面:图4此功能在settings--->display--->brightness下面,可知有自动调节和手动调节背光亮度的功能,其中手动是通过进...转载 2018-03-27 11:45:47 · 1137 阅读 · 0 评论 -
android 系统(34)--关机充电图标修改
关机充电图标修改关机充电图标修改关机充电main函数函数set_draw_anim_mode函数pthread_mutex_init函数bootlogo_init函数alarm_control函数charging_control1 draw_thread_routine2 draw_with_interval3 bootlogo_show_charging4 show_battery_capaci...转载 2018-04-15 19:35:43 · 2936 阅读 · 1 评论 -
Android 系统(40)Handler的基本概念
大家在Android开发中不免会遇到主线程跟新UI,线程切换的场景,其中Handler就是一名大将了有必要对他进行了解。一、图解Handler的基本概念什么是Handler呢,Handler是Android给我们提供来跟新UI的一套机制,也是一套消息处理的机制,可发送也可通过他来处理消息,我们看下图。二、为什么用HandlerAndroid为什么要设计只能通过Handler机制跟新UI呢,最根本目...转载 2018-04-24 08:53:10 · 391 阅读 · 0 评论 -
Android 系统(35)---Android 进程间通信的几种实现方式
一、整体结构下面将逐一介绍4种通讯方式二、4种通讯方式1、ActivityAndroid内置了许多可供其他程序跨进程访问的Activity,比如跳至打电话页面(指定Action,uri跨进程访问) Intent callIntent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:12345678" ); startActivit...转载 2018-04-21 08:33:43 · 434 阅读 · 0 评论 -
Android系统(2)---init.rc知识
在解析Init.rc之前需要对init.rc文件有一个认识,init.rc是由一种被称为"Android初始化语言"(Android Init Language,这里简称为AIL)的脚本写成的文件.该语言是由语句组成的,主要包含了五种类型的语句:ActionCommandsServicesOptionsImport 在init.rc文件中一条语句通常占用一行,单词之间是用空格符来相隔的。如果一...转载 2018-03-29 11:10:53 · 771 阅读 · 0 评论 -
android系统(3)---dumpsys 知识学习
一.概述在Android 开发过程中,为了查询当前手机运行时状态的变化值,需要通过dumpsys activity命令来完成,该方法最终是调用AMS.dump()方法。dumpsys命令用法简要介绍过dumpsys命令 的基本用法,以及系统服务列表信息,那么本文重点介绍AMS。 根据dumpsys activity传递不同的参数, 对于AMS.dump便会输出相应的对象信息。 具体可以跟哪些参数....原创 2018-03-29 11:18:23 · 1412 阅读 · 0 评论 -
android 系统(6)---Android ADB 命令大全
原文链接:https://github.com/mzlogin/awesome-adbADB,即 Android Debug Bridge,它是 Android 开发/测试人员不可替代的强大工具,也是 Android 设备玩家的好玩具。持续更新中,欢迎补充指正,觉得有用的可以将 此 GitHub 仓库 Star 收藏备用。注:有部分命令的支持情况可能与 Android 系统版本及定制 ROM 的实...转载 2018-03-29 11:58:39 · 660 阅读 · 0 评论 -
Android 刘海屏来袭,全网最全适配技巧
一、序Hi,大家好,我是承香墨影!Apple 一直在引领设计的潮流,自从 iPhone X 发布之后,"刘海屏" 就一直存在争议。不过不管你怎样,Android 也要跻入 "刘海屏" 的行列,尤其是 Android P 发布之后,也从系统级支持顶部凹槽屏幕设计。很多厂商也在逐渐推出 “刘海屏” 设计的手机,在国内比较常见的就是 OPPO x21 和 华为 P20。屏幕不一样了,迎来的就是一些适配上...转载 2018-04-12 09:04:04 · 6618 阅读 · 5 评论 -
Android系统---- 全面屏(18:9屏幕)适配指南
7535Android手机 全面屏(18:9屏幕)适配指南 从小米MIX 1发布以来,越来越多所谓“全面屏”手机发布,如三星S8,小米MIX2,VIVO X20,Google Pixel2等等...2017年下半年开始,“全面屏”将大范围覆盖,低至千元机水平,就像当年手机屏幕从720P到1080P过渡一样,历史车轮,滚滚向前,不可阻挡! 暂且不论所谓全面屏如何定义,作为Android开发者...转载 2018-04-12 09:07:52 · 1873 阅读 · 0 评论 -
Android系统----AS 3.1 支持的新版 D8,让你的编译更快、更小、更顺滑
一、前言Android Studio 3.1 稳定版,在前几天正式发布了。其中包含了 D8 Dex Compiler,它在 AS3.1 中,被设置为了默认的 dex 编译器。那么今天就来聊聊,什么是 D8 编译器,并且它有哪些优点?二、D8 编译器Android 开发人员都知道,Dex 编译是构建 Apk 的关键步骤,它是将 .class 字节码转换为 Android Runtime(或 Dalv...转载 2018-04-12 09:16:21 · 973 阅读 · 1 评论 -
android 系统(7)---android框架大全
1. 缓存名称描述DiskLruCacheJava实现基于LRU的磁盘缓存2.图片加载名称描述Android Universal Image Loader一个强大的加载,缓存,展示图片的库Picasso一个强大的图片下载与缓存的库Fresco一个用于管理图像和他们使用的内存的库Glide一个图片加载和缓存的库3. 图片处理名称描述Picasso-transformations一个为Picasso提...转载 2018-03-29 17:03:22 · 666 阅读 · 0 评论 -
android 系统(8)---Android 学习网站汇总
转载 https://blog.csdn.net/qq_37136511/article/details/79012297一、GitHub部分1.android sdk 源码解析——旨在帮助Android开发者更好的学习Android!此博文在持续更新源码每个模块的解析。 github地址:https://github.com/LittleFriendsGroup/AndroidSdkSource...转载 2018-03-29 17:06:41 · 1094 阅读 · 0 评论 -
android系统(10)--top 命令
Usage: top [ -m max_procs ] [ -n iterations ] [ -d delay ] [ -s sort_column ] [ -t ] [ -h ] -m num Maximum number of processes to display. -n num Updates to show before exiting. -d nu...转载 2018-04-05 14:06:02 · 4401 阅读 · 0 评论 -
android 系统(13)---Android O treble 新增hal hwservice selinux policy
EX: vendor.mediatek.hardware.xxxxxx 1.hwservice.tetype mtk_hal_xxx_hwservice, hwservice_manager_type;2-1.hwservice_contextsvendor.mediatek.hardware.xxx::IXXX u:object_r:mtk_hal_xxx_hwservice:s02-2.fi...原创 2018-04-05 18:25:47 · 6341 阅读 · 1 评论 -
Android 系统(36)---Android O、N版本修改dex2oat编译选项
Android O、N版本修改dex2oat编译选项,减少占用ROM空间或者加快安装速度内容 (2018-02-09) Android O版本、AndroidN版本1.ROM过大可以通过调整--compiler-filter,减少apk生成odex文件所占据空间的大小,通常来说odex+vdex文件越大,说明dex2oat优化的类越多越彻底,性能也相对较好;2.Apk安装时间过长可以通过调整-...转载 2018-04-22 14:04:37 · 4587 阅读 · 0 评论 -
Android系统(40)---进程与线程
Android是基于Linux的移动操作系统,但是和Linux本身还是有差别的面试过程中常常会问到相关线程和进程的问题,我们不妨来了解一哈。.受限给一张大图构建一下总体的概念由上图可知:一、线程1、定义二、进程1、定义是一个具有独立功能的程序关于某个数据集合的一次运行活动三、Android进程和线程的区别定义的区别(见上面)基本单位区别: 1、线程是进程的一个实体,是CPU调度和分派的基本单位,是...转载 2018-04-22 14:09:23 · 312 阅读 · 0 评论 -
Android 系统(38)---Android抓取各种log的方法
Android抓取各种log的方法http://blog.csdn.net/matthewei6/article/details/505969831、logcat (四类log buffer是main,radio,system,events)adb wait-for-device logcat adb logcat -v time > logcat.txt //默认是-b ma...转载 2018-04-22 14:11:33 · 709 阅读 · 0 评论 -
Android系统(20)---开发android项目的常用jar包
1. 百度地图Armeabi/libBaiduMapSDK_v3_4_0_15.so, libBMapApiEngine.sobaidumapapi_v3_4_9.jar(demo),locSDK_4.1.jar(demo)开发指南:http://developer.baidu.com/map/sdkandev-2.htm2. alipaySDK-20150818.jar支付宝支付官方指南:htt...转载 2018-04-12 21:27:52 · 522 阅读 · 0 评论 -
Android 系统(21)---OPPO 刘海屏适配
1. 前言随着硬件的发展,手机的屏幕形态也呈现出多样化。OPPO即将推出一款屏幕高宽比更大、带有刘海的凹形屏幕的手机,其屏幕规格如下:图左:全屏显示示意图,绿色区域为可显示区域图右:16:9显示示意图,绿色区域为可显示区域采用宽度为1080px, 高度为2280px的圆弧显示屏。 屏幕顶部凹形区域不能显示内容,宽度为324px, 高度为80px。2. 如何识别凹形屏本次凹形屏规格的机型型号:P...转载 2018-04-12 21:32:19 · 3538 阅读 · 1 评论 -
Android 系统(22)--Android P 行为变更
Android P 引入一系列有关 Android 系统的变更。不论应用针对的是哪个 Android 版本,其中大部分变更会影响所有应用;不过部分变更仅影响针对 Android P 开发的应用。为清楚起见,本文将分成两部分:针对所有 API 等级开发的应用以及针对 Android P 开发的应用 (详见下文内容)。针对所有运行在 Android P 上的应用这些行为变更适用于所有在 Android...转载 2018-04-12 21:35:20 · 1230 阅读 · 0 评论 -
Android系统(23)---Android 应用分屏
一、应用分屏介绍 Android 7.0以来,安卓系统新增了分屏显示应用——即在同一个屏幕上同时显示两个应用窗口的特性。在支持分屏的应用可以在“分屏模式”中左右并排或上下并排显示。 二、应用分屏适配说明 1. 若您的应用计划支持分屏功能,需要在应用清单文件的 <activity>或 <application>节点中设置分屏属性android:resizeableActivi...转载 2018-04-12 21:39:51 · 2833 阅读 · 0 评论 -
Android系统(24)---Android应用架构
前言android架构可能是论坛讨论最多的话题了,mvc mvp和mvvm不绝于耳,后面又有模块化和插件化。对此,关于哪种架构更好的争论从未停止。我的观点:脱离实际项目比较这些模式优劣毫无意义,各种模式都有优点和缺点,没有好坏之分。越高级的架构实现起来越复杂,需要更多的学习成本更多的人力,所以说技术选型关键是在你自己项目的特点,团队的水平,资源的配备,开发时间的限制,这些才是重点!但是不少团队本末...转载 2018-04-13 08:54:20 · 380 阅读 · 0 评论 -
Android 系统(12)---Zygote进程启动过程
android系统进程启动流程android系统的Zygote进程是所有android进程的父进程,包括SystemServer和各种应用进程都是通过Zygote进程fork出来的。Zygote(孵化)进程相当于是android系统的根进程,后面所有的进程都是通过这个进程fork出来的,而Zygote进程则是通过linux系统的init进程启动的,也就是说,android系统中各种进程的启动方式:...转载 2018-04-06 20:32:48 · 436 阅读 · 0 评论 -
Android 系统(14)---SystemServer进程启动过程
SystemServer进程的启动在上一篇文章Framework学习(二)Zygote进程启动过程中,我们已经知道Zygote进程会启动SystemServer进程,但具体启动流程还没有涉及,本文我们就来看看SystemServer进程具体启动过程。首先回顾下ZygoteInit#startSystemServer()函数:frameworks/base/core/java/com/android...转载 2018-04-06 20:34:25 · 394 阅读 · 0 评论 -
Android 系统(15)---Launcher启动过程
Launcher概述SystemServer进程主要用于启动系统的各种服务,其中就包含了Launcher服务,LauncherAppService。Android系统默认第一个启动的应用程序是Home应用程序,这个应用程序用来显示系统中已经安装的应用程序,这个Home应用程序就叫做Launcher。应用程序Launcher在启动过程中会请求PackageManagerService返回系统中已经安...转载 2018-04-06 20:37:09 · 463 阅读 · 0 评论 -
Android 系统(16)---应用启动过程
在Android系统中,启动四大组件中的任何一个都可以启动应用程序。但绝大部分时候我们是通过点击Launcher图标来启动应用程序。本文依据Android7.0源码,从点击Launcher图标开始,分析应用程序的启动过程,其实就是分析根Activity的启动过程。Launcher请求AMS在Framework学习(四)Launcher启动过程 这篇文章我讲过Launcher启动后会将已安装应用程序...转载 2018-04-06 20:38:37 · 402 阅读 · 0 评论 -
Android系统(17)---Context 原理
一、Context继承体系 与 Context是如何创建的1. Context继承体系只用记住一句:Activity 、 Service 与Application 都是继承自ContextWrapper,而ContextWrapper implements Context。每个:Activity 、 Service 与Application都是一个Context实例。2. Context 何时创建...转载 2018-04-07 09:30:44 · 332 阅读 · 0 评论 -
Android 系统(18)---Handler,MessageQueue与Looper关系
一说到Android的消息机制,自然就会联想到Handler,我们知道Handler是Android消息机制的上层接口,因此我们在开发过程中也只需要和Handler交互即可,很多人认为Handler的作用就是更新UI,这也确实没错,但除了更新UI,Handler其实还有很多其他用途,比如我们需要在子线程进行耗时的I/O操作,可能是读取某些文件或者去访问网络等,当耗时操作完成后我们可能需要在UI...转载 2018-04-07 10:26:45 · 434 阅读 · 0 评论 -
Android 系统(53)---关于触摸屏快速点击事件误识别为滑动事件
关于触摸屏快速点击事件误识别为滑动事件问题触屏太灵敏,有时候点击一下会误认为滑动事件,造成误识别。 解决方法增大触发触屏滑动所需要的距离条件,将Config.xml(frameworks\base\core\res\res\values)中的语句<dimen name="config_viewConfigurationTouchSlop">8dp</dimen>修改为:&l...原创 2018-04-30 13:04:50 · 1494 阅读 · 0 评论 -
Android 系统(54)---Android系统开篇
Android系统开篇[转 学习]一、引言原网址Android系统非常庞大、错中复杂,其底层是采用Linux作为基底,上层采用包含虚拟机的Java层以及Native层,通过系统调用(Syscall)连通系统的内核空间与用户空间。用户空间主要采用C++和Java代码,通过JNI技术打通用户空间的Java层和Native层(C++/C),从而融为一体。Google官方提供了一张经典的四层架构图,从下往...转载 2018-04-30 13:07:10 · 707 阅读 · 0 评论