6 他叫小黑

尚未进行身份认证

暂无相关简介

等级
TA的排名 6w+

Android dump使用

简介dumpsys是Android提供的系统工具,可以用来查看所有系统服务的信息。在命令行输入如下命令,就可以罗列出当前所有的系统服务名:dumpsys -ldumpsys 后面加上列出的系统服务名即可只输出特定服务的信息。如下面指令会输出Activity任务栈的信息。dumpsys activity直接dumpsys 某个service打出的信息量很大,可以有选择性的添加一些参数...

2019-10-11 11:30:04

Android O CarService

本文基于AndroidO源码。主要介绍Android的CarService。架构AndroidAutomative的整体架构如下图所示:从这幅图中我们可以看出,AndroidAutomative是在原先Android的系统架构上增加了一些与车相关的(图中中间部分)模块。包括:CarApp:包括原始设备制造商(OEM)和第三方开发的App。CarAPI:提供给汽车Ap...

2018-09-27 16:07:02

Android打印堆栈的方法

打印调用堆栈可以直接把问题发生时的函数调用关系打出来,非常有利于理解函数调用关系,这个对源代码逻辑研究是很有帮助的。Javanew Throwable().printStackTrace(); 很简单。Native C++在mk中要添加下面的库:LOCAL_SHARED_LIBRARIES := \ libbinder \包含下面头文件:includ...

2018-06-29 15:10:02

Android8.1HAL层开发

本文基于Android8.1源码。这里介绍的是一种简单HAL的写法与调用。我将会编写一个app直接调用HAL的接口,而HAL层代码将直接读写驱动的节点。简介AndroidO的一项新元素是ProjectTreble。这是Android操作系统框架在架构方面的一项重大改变,旨在让制造商以更低的成本更轻松、更快速地将设备更新到新版Android系统。在Andro...

2018-06-06 10:29:08

Log.isLoggable的使用

本文将介绍怎么打印出framework源码中的log。在Android源码中,经常可以看到如下的log代码://AudioService.javaprivate static final String TAG = "AudioService";protected static final boolean DEBUG_VOL = Log.isLoggable(TAG + ".V...

2018-06-04 19:06:47

2个8位数据和一个16位数据相互转换

这种位的转换其实理解了本质就很容易了,也很基础。首先先了解一下bit和Byte,俗称大B和小b的区别。一个小b只能代表一个内容(0或者1,其中的一个)两个小b可代表4个内容“2的2次方“(00,11,01,10)bit意为“位”或“比特”,是计算机运算的基础;Byte意为“字节”,是计算机文件大小的基本计算单位;换算关系:1Byte=8bits...

2018-05-31 11:23:51

ProtoBuf入门

最近在入Android O的坑。看到ProtoBuf了解一下。 Google Protocol Buffer(简称 Protobuf)是一种轻便高效的结构化数据存储格式,平台无关、语言无关、可扩展,可用于通讯协议和数据存储等领域。你可以用定义自己ProtoBuf的数据结构,用ProtoBuf编译器生成特定语言的源代码,(如C++,Java,Python等,目前ProtoBuf对主流的编程语言都提...

2018-03-24 17:34:51

在Ubuntu下安装Android Studio并导入源码

1.下载Ubuntu版本Android Studio到官网下载,选择Ubuntu版本2.安装把官网下载的zip包放到ubuntu下。 在终端使用下面命令解压zip包到/usr/local/路径下:unzip -d /usr/local/ android-studio-ide.zip如果要把文件解压到指定的目录下,需要用到-d参数。解压的时候,有时候不想覆盖已经存在...

2018-03-22 19:48:20

String类型转化成Int类型

String类型通过ASCII规则转化成int类型:String–>byte–>intArrayList<Integer> arrayList = new ArrayList<Integer>();ArrayList vecCmdParam = new ArrayList();for(int i = 0; i < vecCmdParam.size(); i++){

2017-10-08 10:27:08

系统强制横屏、竖屏

Activity横竖屏修改属性android:screenOrientation即可属性有下述可选值: 1. unspecified:默认值 由系统来判断显示方向.判定的策略是和设备相关的,所以不同的设备会有不同的显示方向 2. landscape:横屏显示 3. portrait:竖屏显示 4. user:用户当前首选的方向

2017-09-29 10:38:39

Settings源码分析

本文代码基于5.1.1。概述介绍Settings源码位置:packages/apps/Settings/SettingsProvider源码位置:frameworks/base/packages/SettingsProvider/ frameworks/base/core/java/android/provider/Settings.java

2017-08-08 15:49:59

Material Design

这两天看了一下Material Design的一些控件,下面总结一下,以备以后可以使用。Material Design是谷歌的设计工程师们基于传统的设计原则,结合丰富的创意和科学技术发明的一套全新的界面设计语言,包含了视觉、运动、互动效果等特性。2015年Google I/O大会上推出了一个Design Support库,这个库将Material Design中最具代表性的一些控件和效果进行了封装,

2017-08-01 09:12:23

获取当前栈顶的Activity

如何获得当前栈顶的Activity?总的步骤是: 1. 得到当前运行环境(context)的Activity管理器; 2. 通过Activity管理器得到当前的任务栈信息; 3. 从任务栈中获得栈顶的Activity的名称。ActivityManager manager = (ActivityManager)mContext.getSystemService(Context.ACTIVI

2017-07-21 10:48:37

Service的使用:断点下载

本文将使用到Service、OkHttp、AsyncTask、Notification、运行时权限申请。首先,将OkHttp的依赖库添加好。compile 'com.squareup.okhttp3:okhttp:3.8.1'接下来,定义一个回调接口,用于对下载过程中的各种状态进行监听和回调。新建一个DownloadListener接口,如下:public interface DownloadLis

2017-07-20 19:39:32

ConstraintLayout属性详解和Chain的使用

概述自AS2.3起创建新的Activity,默认的layout根布局就是ConstraintLayout。 所以再不学习就真的晚了。 我也是正式开始学习的道路,先说一下我的学习过程: * 先阅读了ConstraintLayout官方文档和Guideline官方文档 * 实践每个属性并记下笔记(翻译) * 学习了郭神关于ConstraintLayout可视化操作(拖拖拽拽)的博客,发现博客中

2017-07-13 18:11:11

添加系统属性:Settings.system和SystemProperties

介绍一、使用 SystemProperties.get这中方法在framework里面经常见到。特别属性: 如果属性名称以“ro.”开头,那么这个属性被视为只读属性。一旦设置,属性值不能改变。 如果属性名称以“persist.”开头,当设置这个属性时,其值也将写入/data/property。在c++中就是对应JAVA的两个函数就是property_set, property_get,其实JAV

2017-05-09 15:23:28

Android原生音量控制

本文主要涉及AudioService。还是基于5.1.1版本的代码。AudioService.java文件位于/framework/base/media/java/android/media/下。音量控制是AudioService最重要的功能之一。先总结一下:AudioService音量管理的核心是VolumeStreamState。它保存了一个流类型所有的音量信息。Volum...

2017-03-29 18:56:48

系统音量条

最近在定制Android系统音量条,发现代码还是蛮多的,下面总结一下。 代码是基于5.1.1版本的。 系统音量条的代码是在/frameworks/base/packages/SystemUI/src/com/android/systemui/volume/VolumePanel.java 布局文件是在/frameworks/base/packages/SystemUI/res/layout下

2017-03-02 11:05:46

Seekbar自定义样式及使用

seekbar的使用 &amp;lt;SeekBar android:id=&quot;@+id/seekBar&quot; style=&quot;@style/Widget.AppCompat.SeekBar&quot; android:layout_width=&quot;match_parent&quot; android:layout_height=&quot;wrap_content&quot;...

2017-02-15 20:17:35

Android使用@hide的API

今天早上想修改MediaPlaybackService.java(/packages/apps/Music)的代码。将AudioManager.STREAM_MUSIC改成AudioManager.STREAM_TTS。发现AudioSystem.java(/frameworks/base.media/java/android/media)/* @hide The audio stream for

2017-01-05 11:09:14

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。