EricChows

Android Developer


  • 首页

  • 标签

  • 分类

  • 归档

  • 关于

  • 站点地图

  • 搜索

★★★★★博客导航★★★★★

发表于 2099-01-01 | 分类于 All | 阅读次数:
基础知识 Java Ongoing, Android Ongoing C++ Ongoing Linux Ongoing Framework源码解析 Android中PackageManagerService机制分析 进行到了30%,还未完成 StrictMode 机制以及性能调优 ANR 机制以及问题分析 Watchdog机制以及问题分析 Android中Window机制 Andro ...
阅读全文 »

Android中PackageManagerService机制分析

发表于 2018-05-31 | 分类于 Android | 阅读次数:
概要每一个社会群落都有管理机制,其中有三个要素:被管理者、管理者以及管理机制的运转。在Android的世界中,有一处群落叫“包管理”,要研究Android的包管理机制,同样可以从以下几个角度来思考: 被管理的对象是什么? 管理者的职能是什么? 管理机制是如何运转的?所谓包,其实就是一种文件格式,譬如APK包、JAR包等。在Android中存活着很多包,所有的应用程序都是APK包,很多构成Andr ...
阅读全文 »

Android中PackageManagerService相关的文件

发表于 2018-05-31 | 分类于 Android | 阅读次数:
/system/etc/sysconfig 目录下的文件framework-sysconfig.xml1234567891011121314151617181920212223242526272829303132333435<?xml version="1.0" encoding="utf-8"?><!-- Copyright (C) 2017 The Android Open ...
阅读全文 »

Android系统性能调优工具

发表于 2018-05-28 | 分类于 Android | 阅读次数:
概述在软件开发过程中,想必很多读者都遇到过系统性能问题。而解决系统性能问题的几个主要步骤是: 测评:对系统进行大量有针对性的测试,以得到合适的测试数据。 分析系统瓶颈:分析测试数据,找到其中的hotspot(热点,即bottleneck)。 性能优化:对hotspot相关的代码进行优化。由上述步骤可知,性能优化的目标对象是hotspot。如果找到的hotspot并非真正的热点,则性能优化的结果必 ...
阅读全文 »

StrictMode 机制以及性能调优

发表于 2018-05-15 | 分类于 Android , StrictMode | 阅读次数:
作为Android开发,日常的开发工作中或多或少要接触到性能问题,比如我的Android程序运行缓慢卡顿,并且常常出现ANR对话框等等问题。既然有性能问题,就需要进行性能优化。正所谓工欲善其事,必先利其器。一个好的工具,可以帮助我们发现并定位问题,进而有的放矢进行解决。本文主要介绍StrictMode 在Android 应用开发中的应用和一些问题。 Google 官方的StrictMode文档: ...
阅读全文 »

Android中Keyguard解析

发表于 2018-05-05 | 分类于 Android , Keyguard | 阅读次数:
概述 本文是基于Android版本:8.1.0来讨论Keyguard相关代码. 在Android 8.1.0版本中,将Keyguard模块的代码完全移到了SystemUI,将其和SystemUI进行了合并。那么为何要把SystemUI和Keyguard代码放在一起呢?估计基于以下几点考虑: a) 虽然在之前的版本中,Keyguard模块和SystemUI模块的代码是分开放在两个目录,且单独参与编 ...
阅读全文 »

ANR 机制以及问题分析

发表于 2018-05-01 | 分类于 Android , ANR | 阅读次数:
本文目标讲解Android中的ANR原理以及如何分析ANR问题 概览 ANR(Application Not Responding),应用程序无响应,简单的一个定义,却涵盖了很多AAndroid系统的设计思想。 首先,ANR属于应用程序范畴,不同于SNR(System Not Responding),SNR反映的问题是系统进程(system_server)失去了响应能力,而ANR明确将问 ...
阅读全文 »

Android8.0充电图标不显示

发表于 2018-04-25 | 分类于 Android | 阅读次数:
1.充电图标不显示,问题分析步骤a)找到充电图标的UI,frameworks/base/packages/SystemUI/res/layout/system_icons.xml中找到1234<com.android.systemui.BatteryMeterView android:id="@+id/battery" android:layout_height="match_ ...
阅读全文 »

Watchdog机制以及问题分析

发表于 2018-04-16 | 分类于 Android | 阅读次数:
概览Watchdog的中文的“看门狗”,有保护的意思。最早引入Watchdog是在单片机系统中,由于单片机的工作环境容易受到外界磁场的干扰,导致程序“跑飞”,造成整个系统无法正常工作,因此,引入了一个“看门狗”,对单片机的运行状态进行实时监测,针对运行故障做一些保护处理,譬如让系统重启。这种Watchdog属于硬件层面,必须有硬件电路的支持。 Linux也引入了Watchdog,在Linux内核下 ...
阅读全文 »

Android中Window机制

发表于 2018-04-03 | 分类于 Android , Window | 阅读次数:
Window的概念Android手机中所有的视图都是通过Window来呈现的,像常用的Activity,Dialog,PopupWindow,Toast,他们的视图都是附加在Window上的,所以可以这么说 ——「Window是View的直接管理者。」 Android的窗口管理子系统架构如下: Window Window.java 是一个顶级窗口查看和行为的一个抽象基类。这个类的实例作为一个顶级V ...
阅读全文 »

Android的Log机制分析

发表于 2018-03-03 | 分类于 Android | 阅读次数:
概述LOG是广泛使用的用来记录程序执行过程的机制,它既可以用于程序调试,也可以用于产品运营中的事件记录。在Android系统中,提供了简单、便利的LOG机制,开发人员可以方便地使用。 Log的使用 本节介绍Kernel中内核态的printk和用户态的Log使用 内核态Kernel log的使用printk的使用 Android是基于Linux内核的,所以Linux中的printk同样适用于Andr ...
阅读全文 »

Android Launcher 启动Activity工作流程

发表于 2018-02-25 | 分类于 Android , Launcher , Activity | 阅读次数:
前言通过Binder之应用层总结与分析可以了解到进程间通讯的一个大致情况,像今天要提到的Activity启动过程,也是以Binder为通讯方式。系统对这个工作过程做了很多封装,使得启动一个Activity变得十分简单。这看似简单的背后,实际上是Activity与ActivityManagerService之间多次通讯的结果。阅读该篇文章建议配合源码一起食用,味道更佳。 Launcher手机桌面AP ...
阅读全文 »

Andorid中AIDL解析

发表于 2018-02-16 | 分类于 Android , AIDL | 阅读次数:
概述AIDL是android接口定义语言,可以利用它定义客户端与服务端进行进程间通信 (IPC) 时都认可的编程接口。跨进程通信,不同的进程,运行在不同的VM虚拟机上,每个进程都有独立的内存空间,管理各自的数据,就像“我住长江头,君住长江尾。日日思君不见君,共饮长江水”。AIDL就是“我”与“君”沟通的桥梁。 关键词BinderAIDL:序列化Stub类: 字面上的翻译是存根的意思.Proxy类: ...
阅读全文 »

Android中View机制

发表于 2018-01-16 | 分类于 Android , View | 阅读次数:
Android 编程下 Touch 事件的分发和消费机制Android 中与 Touch 事件相关的方法包括:dispatchTouchEvent(MotionEvent ev)、onInterceptTouchEvent(MotionEvent ev)、onTouchEvent(MotionEvent ev);能够响应这些方法的控件包括:ViewGroup、View、Activity。方法与控件 ...
阅读全文 »

Android8.1.0 DeskClock横屏滑动冲突

发表于 2018-01-01 | 分类于 Android | 阅读次数:
问题描述:【Android版本】:Android 8.1.0【预置条件】在时钟界面添加多个不同国家世界时钟【操作步骤】 1.竖屏下滑动查看 2.切换至横屏滑动查看【实际结果】 2.横屏下出现滑动条不动,时钟界面自己在不停的更新,见视频【期望结果】 横屏下可正常滑动查看 问题分析: 1) 找到滑动的View的布局代码在竖屏是布局:packages/apps/DeskClock/res/layou ...
阅读全文 »

Android好文

发表于 2017-12-12 | 分类于 Android , Article | 阅读次数:
Android开发者必须阅读的优秀学习资源Ongoing,待完成,Please wait. 重点关注深入理解Android卷III相关 杂看过的比较好的文章:Android 目前最稳定和高效的UI适配方案Android AccessibilityService机制源码解析译文:理解Android中垃圾回收日志信息从Java代码到字节码(1)细说 Java 中的字符和字符串( 二 )GitHub秘籍 ...
阅读全文 »

Java基础知识汇总

发表于 2017-07-16 | 分类于 Java , Base | 阅读次数:
Java 基础Java基础教程 Java基础知识入门Java基础总结大全(实用) JDKJDK文档 Java 源码解析源码解析类网址:https://blog.csdn.net/benjaminlee1/article/category/6477755 Java-Object类源码解析 Java 反射机制深入理解 Java 反射:Field (成员变量) JVM★Java虚拟机 JVM相关网址:h ...
阅读全文 »

Java-VirtualMachine

发表于 2017-07-16 | 阅读次数:
Java中堆内存和栈内存详解http://www.cnblogs.com/whgw/archive/2011/09/29/2194997.html Java把内存分成两种,一种叫做栈内存,一种叫做堆内存 在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配。当在一段代码块中定义一个变量时,java就在栈中为这个变量分配内存空间,当超过变量的作用域后,java会自动释放掉为该变量 ...
阅读全文 »

Ubuntu 配置 OpenGork 服务

发表于 2017-05-31 | 分类于 Tools | 阅读次数:
OpenGork的配置OpenGork的好处,这里不做介绍了,可以参考https://zhuanlan.zhihu.com/p/24369747OpenGork是用Java实现的,源码见 https://github.com/oracle/opengrok/OpenGork官网:http://oracle.github.io/opengrok/OpenGork下载地址:https://github ...
阅读全文 »

IT学习方法论

发表于 2017-05-05 | 分类于 方法论 , IT | 阅读次数:
查找资料的方法: 微信公众号里面搜索 CSDN里面搜索? 简书里面搜索? 值得关注的网址:极客学院-深入理解 Android 卷II有SystemServer/PackageManagerService/PowerManagerService/ActivityManagerService/ContentProvider等讲解 编程刷题网站:https://leetcode-cn.com/h ...
阅读全文 »
12…5
Eric Chows

Eric Chows

82 日志
81 分类
92 标签
RSS
GitHub E-Mail Google Wechat
0%
© 2015 — 2018 EricChows