Android O CarService

本文基于Android8.1源码。 主要介绍Android的CarService。 架构 Android Automative的整体架构如下图所示: 从这幅图中我们可以看出,Android Automative是在原先Android的系统架构上增加了一些与车相关的(图中中间部分)模...

2018-09-27 16:07:02

阅读数 3224

评论数 0

Android打印堆栈的方法

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

2018-06-29 15:10:02

阅读数 827

评论数 0

Android8.1HAL层开发

本文基于Android8.1源码。 这里介绍的是一种简单HAL的写法与调用。 我将会编写一个app直接调用HAL的接口,而HAL层代码将直接读写驱动的节点。 简介 Android O的一项新元素是 Project Treble。这是 Android 操作系统框架...

2018-06-06 10:29:08

阅读数 6726

评论数 12

Log.isLoggable的使用

本文将介绍怎么打印出framework源码中的log。 在Android源码中,经常可以看到如下的log代码: //AudioService.java private static final String TAG = "AudioService&a...

2018-06-04 19:06:47

阅读数 455

评论数 0

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

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

2018-05-31 11:23:51

阅读数 5587

评论数 0

ProtoBuf入门

最近在入Android O的坑。看到ProtoBuf了解一下。 Google Protocol Buffer(简称 Protobuf)是一种轻便高效的结构化数据存储格式,平台无关、语言无关、可扩展,可用于通讯协议和数据存储等领域。你可以用定义自己ProtoBuf的数据结构,用ProtoBuf编译...

2018-03-24 17:34:51

阅读数 140

评论数 0

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

1.下载Ubuntu版本Android Studio 到官网下载,选择Ubuntu版本 2.安装 把官网下载的zip包放到ubuntu下。 在终端使用下面命令解压zip包到/usr/local/路径下: unzip -d /usr/local/ ...

2018-03-22 19:48:20

阅读数 811

评论数 0

String类型转化成Int类型

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

2017-10-08 10:27:08

阅读数 355

评论数 0

系统强制横屏、竖屏

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

2017-09-29 10:38:39

阅读数 604

评论数 0

Settings源码分析

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

2017-08-08 15:49:59

阅读数 570

评论数 1

Material Design

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

2017-08-01 09:12:23

阅读数 290

评论数 0

获取当前栈顶的Activity

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

2017-07-21 10:48:37

阅读数 216

评论数 0

Service的使用:断点下载

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

2017-07-20 19:39:32

阅读数 194

评论数 0

ConstraintLayout属性详解和Chain的使用

概述自AS2.3起创建新的Activity,默认的layout根布局就是ConstraintLayout。 所以再不学习就真的晚了。 我也是正式开始学习的道路,先说一下我的学习过程: * 先阅读了ConstraintLayout官方文档和Guideline官方文档 * 实践每个属性并记下笔...

2017-07-13 18:11:11

阅读数 523

评论数 0

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

介绍一、使用 SystemProperties.get这中方法在framework里面经常见到。特别属性: 如果属性名称以“ro.”开头,那么这个属性被视为只读属性。一旦设置,属性值不能改变。 如果属性名称以“persist.”开头,当设置这个属性时,其值也将写入/data/propert...

2017-05-09 15:23:28

阅读数 1934

评论数 0

Android原生音量控制

本文主要涉及AudioService。还是基于5.1.1版本的代码。 AudioService.java文件位于/framework/base/media/java/android/media/下。 音量控制是AudioService最重要的功能之一。先总结一下: AudioServi...

2017-03-29 18:56:48

阅读数 12458

评论数 0

系统音量条

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

2017-03-02 11:05:46

阅读数 2594

评论数 0

Seekbar自定义样式及使用

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

2017-02-15 20:17:35

阅读数 274

评论数 0

Android使用@hide的API

今天早上想修改MediaPlaybackService.java(/packages/apps/Music)的代码。将AudioManager.STREAM_MUSIC改成AudioManager.STREAM_TTS。发现AudioSystem.java(/frameworks/base.med...

2017-01-05 11:09:14

阅读数 272

评论数 0

百分比布局

在百分比布局中,我们可以不再使用wrap_content 、match_parent等方式来指定控件的大小,而是允许直接指定控件在布局中所占的百分比,这样的话就可以轻松实现平分布局甚至是任意比例分割布局的效果了。由于LinearLayout本身已经支持按比例指定控件的大小了,因此百分比布局只为Fr...

2016-12-29 19:46:44

阅读数 388

评论数 0

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