6 他叫小黑

尚未进行身份认证

暂无相关描述

等级
博文 44
排名 7w+

Android O CarService

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

2018-09-27 16:07:02

Android打印堆栈的方法

打印调用堆栈可以直接把问题发生时的函数调用关系打出来,非常有利于理解函数调用关系,这个对源代码逻辑研究是很有帮助的。JavanewThrowable().printStackTrace();很简单。NativeC++在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.javaprivatestaticfinalStringTAG="AudioService";protectedstaticfinalbooleanDEBUG_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入门

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

2018-03-24 17:34:51

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

1.下载Ubuntu版本AndroidStudio到官网下载,选择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=newArrayList<Integer>();ArrayListvecCmdParam=newArrayList();for(inti=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

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

2017-08-01 09:12:23

获取当前栈顶的Activity

如何获得当前栈顶的Activity?总的步骤是:1.得到当前运行环境(context)的Activity管理器;2.通过Activity管理器得到当前的任务栈信息;3.从任务栈中获得栈顶的Activity的名称。ActivityManagermanager=(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接口,如下:publicinterfaceDownloadLis

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;SeekBarandroid: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)/*@hideTheaudiostreamfor

2017-01-05 11:09:14

百分比布局

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

2016-12-29 19:46:44
奖章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!