Lifecycle, LifecycleOwner, LifecycleObserver类讲解

最近谷歌安卓团队推出一堆的组件开发架构,方便程序开发者编写更健壮,更安全,更简洁的代码,但是想要熟练地应用它们还是需要学习框架的原理。 Lifecycles的目的就是安卓组件(activities, fragments)在发生状态变化(onStart, onResume)的时候,其它的部分能够相...

2018-10-25 12:45:32

阅读数 352

评论数 1

字符串的字体和显示 (3)

安卓有三种字符串,String, String Array, Quantity String(Plurals). String和String Array容易理解,一个是字符串,一个是字符串数组。 通过 String[] planets = res.getStringArray(R.arra...

2018-10-21 15:36:43

阅读数 93

评论数 0

Drawable资源类型详述 (2)

Drawable资源是一个很泛的概念,它是指可以被画到屏幕上的,可以通过getDrawable()获取,或者通过android:drawable引用到其它xml文件的资源,资源的类型有很多种: Bitmap File: 一般是以.png, .jpg, .gif结尾的,可以创建一个BitmapDr...

2018-10-20 18:48:59

阅读数 56

评论数 0

动画 (Animation) 资源类型详述 (1)

详细介绍程序资源的使用,格式和语法,包括 ①Animation Resources 动画资源,Tween动画(Tween动画是操作某个控件让其展现出旋转、渐变、移动、缩放的过程)保存在res/anim资源文件中,Frame动画保存在res/drawable资源文件中。 ②颜色状态资源 定义...

2018-10-20 13:45:02

阅读数 162

评论数 0

自定义配置变化

大家都知道手机旋转屏幕的时候activity会重启,安卓提供两种方式来处理配置变化。 1.保留一个配置对象 一般是使用onSaveInstanceState()的Bundle对象进行数据传递,还可以使用ViewModel对象,后面再作分析。 2.自定义配置变化 如果你的程序在特殊的配置变化...

2018-10-19 13:13:48

阅读数 47

评论数 0

资源文件夹res/概述

安卓的资源文件通常有bitmaps, layout布局,字符串,动画指令等,它们是和代码分开的,所以你可以独立地管理它们。你需要通过命名不同的文件夹,为不同的设备提供可选的资源,那么系统就会在程序运行的时候选择合适的资源。比如,你想根据屏幕的尺寸提供不同的UI布局,你通过系统生成的R类中包含的资源...

2018-10-19 11:17:59

阅读数 179

评论数 0

安卓四大组件介绍

安卓四大组件Activities, Services, Broadcast receivers, Content providers是程序的核心模块。 源码在appfundamentals 目录里面。 1.Activities Activities代表和用户交互的一个界面,比如一个邮箱程序会...

2018-10-18 20:33:32

阅读数 211

评论数 0

建立我的第一个程序

教你建立一个简单的程序,你会创建一个用户界面,接收用户的输入,然后显示在第二个界面上。 源码在appfundamentals 目录里面。 1.概述 在开始写代码之前,你应该有下面的基础认识,程序是由多个部件组合而成的,activities是负责提供用户界面的部件,其它的部件还有broadca...

2018-10-18 11:14:41

阅读数 41

评论数 0

FFmpeg下载、安装及内容介绍

FFmpeg是什么呢?A complete, cross-platform solution to record, convert and stream audio and video.一个完全的,跨平台的记录,转换音视频流的解决方案。官网地址:http://ffmpeg.org/源码下载地址:h...

2018-07-16 10:30:00

阅读数 220

评论数 0

Android源码分析--手机默认音量值的设置(08)

手机在reset的时候,会设置相关的默认音量,这个默认音量怎么在开机的时候修改呢?可以看到在 /frameworks/base/media/java/android/media/AudioSystem.java public static int getDefaultStrea...

2018-01-29 14:10:45

阅读数 386

评论数 0

libxml2生成和解析配置树文件

之前的章节中介绍如何安装Ubuntu下libxml2的安装和使用以及如何使用CMake建立工程 CMake加入第三方库,这章将会更深入一步,讲述如何创建一个xml文件Create A Tree,如何解析xml文件,这两个例子来自于官网的示例,同时结合Android实际的例子,介绍解析一个设备树...

2018-01-26 22:19:56

阅读数 634

评论数 0

C++标准库容器和迭代器讲解

从写程序开始就已经接触了类似栈,队列等数据结构,很多的书上也讲述到容器,但是之前的书上很多地方容器和迭代器是分开的,或者说他们是用比较老的C++标准在写代码,这并不符合现在工程创建。写这篇文章的参考主要是Professional C++ 3rd这本书,可以在网盘上进行下载 https://pan...

2018-01-26 18:16:01

阅读数 151

评论数 0

CMake加入第三方库

CMake构建工程的时候很多程序可以使用写好的库,这就会涉及到库的编译链接过程。这里使用的提到的 Ubuntu下libxml2的安装和使用xml库作为讲解示例,如何安转运行请点击链接。 使用kdevelop新建工程名字XmlDemo, CMakeLists.txt文件 cmake_m...

2018-01-26 16:52:17

阅读数 2010

评论数 0

Ubuntu下libxml2的安装和使用

这篇文章主要介绍libxml2的安装和使用,xml文件的主要作用就是配置文件,实际的应用在前面的章节Audio设备文件解析中有需要对audio_policy_configuration.xml文件解析,google使用的是开源库libxml2,在源码目录/external/libxml2下面,现在...

2018-01-26 16:28:31

阅读数 3175

评论数 0

学习使用CMake构建工程

CMake是编写C/C++常用的文件构建工具,掌握它的编写规则对于理解工程至关重要。本文只是简单的cmake入门,更多详细的内容可以参考网上的资料。这里使用的kdevelop作为开发工具,读者也可以选用vim或者visual studio都可以。具体的kdevelop可以参考此文 kdevelo...

2018-01-26 14:41:56

阅读数 330

评论数 0

Android源码分析--Audio设备文件解析(07)

上篇文章中只是讲到配置文件在哪里,怎么读取文件,但是真正的文件解析还没有开始。这篇就开始分析文件解析,认识这些解析的参数。  接着上篇Audio设备文件加载继续进行分析,知道主要是这个函数起到解析的作用。 static status_t deserializeAudioPolicyXmlC...

2018-01-25 22:32:36

阅读数 718

评论数 0

Android源码分析--Audio设备文件加载(06)

手机上有多少设备都是通过配置xml文件来实现的,然后在构造AudioPolicyManager实例时进行文件解析,初始化相关的变量。比如有些手机有两个麦克风,通常叫做内置麦克风,和副麦克风,但是有些低端手机只会配置内置的麦克风。         通过全局搜索可以看到 /device/googl...

2018-01-25 21:20:36

阅读数 1097

评论数 1

Android源码分析--AudioPolicyManagerObserver类讲解(05)

为什么要单独写个文章讲到这个类,因为这个类在之前我们获取可用的输入输出设备的时候AudioPolicyEngine设备路由调用过其中的方法,但是没有深入分析,而且这个类是AudioPolicyManager的接口,同时这个类可以引申出其它的Audio抽象类,最后要讲解Vector和Collecti...

2018-01-24 22:29:53

阅读数 307

评论数 0

Android源码分析--AudioEngine的初始化(04)

前面的文章中讲到Engine设备的选择,那么这个类是怎么被初始化的呢?可以看到在AudioPolicyManager的构造器中, AudioPolicyManager::AudioPolicyManager(AudioPolicyClientInterface *clientInterface)...

2018-01-24 21:51:34

阅读数 541

评论数 0

Android源码分析--Audio声音相关问题分析(03)

范例1:客户需要开发一个对讲机,用得是手机的板子,因为对讲机不需要那么多的功能,所以需要对底层硬件进行裁剪,使用听筒作为音频输出,其它所有的音频设备都去掉,因此如果不修改Framework层的音频逻辑的话,会出现对讲机无声的问题。 范例2:客户开发一款智能手表,定制的功能是不允许设备进行录音,就...

2018-01-24 20:46:03

阅读数 218

评论数 0

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