自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(172)
  • 资源 (3)
  • 收藏
  • 关注

转载 2020-12-08

Binder 源码分析本文是基于Android 6.0.0和kernel 3.4源码 及 Android SDK 23 展开的。目录1. 简介 2. Binder 与 AIDL 2.1 AIDL 客户端 2.2 AIDL 服务端 2.3 远程服务的获取与使用 3. Binder 框架及 Native 层 3.1 Binder Native 的入口 3.2 Binder 本地层的整个函数/方法调用过程 3.3 Binder 设备文件的打开和读写 4. Bi...

2020-12-08 20:48:36 22

原创 Android 架构组件之一

为了使用MVVM架构模式开发APP,才了解到Android本身也是提供一些列库来支持MVVM架构模式的。只是使用MVVM架构模式开发的APP和之前的开发有了很大的区别。MVVM是以数据来驱动的,即数据(Model)改变--》UI绑定的变量(ViewModel)变化--》相应数据会自动更新至UI(View),不需要再进行主动的操作UI的更新逻辑。另外,User改变UI(View)的数据--...

2019-08-30 09:38:59 136

原创 Android架构组件之二-应用架构指南

应用架构指南官方地址https://developer.android.google.cn/jetpack/docs/guide本指南包含一些最佳做法和推荐架构,有助于构建注重生产质量的强大应用。本页假定您对 Android 框架有基本的了解。如果您不熟悉 Android 应用开发,请查看我们的开发者指南,着手体验并详细了解本指南中提到的概念。移动应用用户体验在大多数情况下,桌...

2019-08-30 09:37:24 490

转载 MVC模式简介

深入理解Yii2.0» Yii 模式» MVCMVCMVC是一种设计模式(Design pattern),也就是一种解决问题的方法和思路, 是上世纪80年代提出的,到现在已经颇有历史了。 MVC的意义在于指导开发者将数据与表现解耦,提高代码,特别是模型部分代码的复用性。MVC不仅仅存在于Web设计中,在桌面程序开发中也是一种常见的方法。MVC的出现已经有一段历史了。 ...

2019-08-28 16:40:26 293

原创 非常牛逼的Android学习网站

https://www.kancloud.cn/alex_wsc/androidsystem/403521

2019-08-16 13:29:45 360 1

原创 Android mk详解

概览Android.mk文件位于项目jni/目录的子目录中,用于向编译系统描述源文件和共享库。它实际上是编译系统解析一次或多次的微小 GNU makefile 片段。Android.mk文件用于定义Application.mk、编译系统和环境变量所未定义的项目范围设置。它还可替换特定模块的项目范围设置。Android.mk的语法支持将源文件分组为模块。模块是静态库、共享库或...

2019-07-20 13:28:21 8231

转载 Socket原理讲解

对TCP/IP、UDP、Socket编程这些词你不会很陌生吧?随着网络技术的发展,这些词充斥着我们的耳朵。那么我想问:1.什么是TCP/IP、UDP?2.Socket在哪里呢?3.Socket是什么呢?4.你会使用它们吗?什么是TCP/IP、UDP?TCP/IP(Transmission Cont...

2019-07-18 15:50:36 173594 49

原创 TCP/IP详解

1.网际互联及OSI七层模型:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层==========================================物理层作用:定义一些电器,机械,过程和规范,如集线器;PDU(协议数据单元):bit/比特设备:集线器HUB;注意:没有寻址的概念;==============================...

2019-07-18 15:31:59 167

原创 Handler机制

Handler机制Handler机制的简单介绍 1 Handler Handler对象允许你发送消息和Runnable对象加入到MessageQueue队列,同时也可以处理从MessageQueue中取出来的消息和Runnable对象。每一个Handler实例都跟一个线程和MessageQueue绑定在一起。当新的Handler创建时,Handler对象将会跟创建时所在的线程的线程实例...

2019-06-02 23:34:38 217

转载 android Bind机制

Service Manager是一个linux级的进程,顾名思义,就是service的管理器。这里的service是什么概念呢?这里的service的概念和init过程中init.rc中的service是不同,init.rc中的service是都是linux进程,但是这里的service它并不一定是一个进程,也就是说可能一个或多个service属于同一个linux进程。在这篇文章中不加特殊说明均指...

2019-05-15 18:39:10 352

原创 ACRCP协议规范

1.AVRCP(Audio/Video Remote Control Profile)上图是AVRCP依赖关系图。从图中可以看出它依赖于GAP和BIP2.AVRCP协议模型,如下3.AVRCP 角色• The controller (CT) is a device that initiates a transaction by sending a command fr...

2019-05-12 15:49:38 290

原创 A2DP协议规范

1.A2DP(Advanced Audio Distribution Profile) Dependencies A2DP Profile Dependencies 2.A2DP Profile Mode 3.A2DP 的角色关系Source (SRC) – A devic...

2019-05-11 09:50:58 1522

原创 代码重构(一)

代码重构代码坏味1.1重复代码(Duplicated Code)出现的情况:相同的代码结构重复出现不同地方时,我们可以将它们合而为一。 两个互为新工地的子类内包含相同的表达式具体采用的方法:采用Extract Method提炼重复代码 只需对两个类都是用Extract Method,然后再对被提炼出来的代码使用Pull Up Method将它推入超类内 如果两个毫不相关的...

2019-04-08 18:49:44 6204

原创 bluetoothopp(二) 接收文件

2018-08-09 20:53:06 427

原创 BluetoothOpp共享文件(一)之蓝牙设备选择

当我们共享文件时都会弹出共享方式选择,我们选择蓝牙共享时就会根据蓝牙是否开启来进行不同的结果。接下来就默认蓝牙为开启的状态进行分析。当我们点击蓝牙的时候就会显现蓝牙设备选择界面,即DevicePickerFragment.java具体蓝牙列表是怎么显示出来的请自行分析。1.共享文件就会选择一个要共享的设备,当我们点击共享的设备时,执行的代码如下:@Override    void...

2018-07-26 23:49:03 586

转载 Carrier Configuration in Android 6.0 文档翻译

Carrier Configuration in Android 6.0(主要就是carrier app) Introduction□介绍The Android 6.0 Marshmallow release introduces a capability for privileged applications to provide carrier-specific configuration t...

2018-07-03 19:40:39 711

原创 Android 蓝牙开发(一)OPP传输文件

Android蓝牙功能(传统蓝牙、ble、hid)这三方面功能之前的博客都已经写了。现在接着了解蓝牙OPP传输文件相关功能。Android手机使用中,经常会用到通过蓝牙分享文件给附近的朋友。那么具体是如何实现的,大部分朋友都不是很清楚。看一下源码是如何实现该功能的。1 BluetoothOppLauncherActivityAndroid手机点击某文件进行蓝牙分享的时候,会跳转到系统自带应用Blu...

2018-06-23 11:15:10 2794

原创 蓝牙(一)Settings 打开蓝牙代码流程

先把流程图贴上,等以后有时间再具体分析。

2018-06-12 23:38:35 1661

转载 Android WiFi 架构总览(模块及接口)

Android WiFi 架构总览本文介绍Android源码项目(AOSP)中WiFi功能的软件架构及各个模块(可执行文件、动态链接库)间的接口。SDK APIAndroid SDK为开发者提供了WiFi编程接口,使用起来非常方便。相关包: android.net.wifi(写App时只需import该包,即可使用WiFi相关功能)主要相关类: * WifiManager WIFI编程入口,WIF...

2018-05-28 11:46:25 1222 1

转载 Android activity的四种启动模式

转自文章《Android四种启动模式》http://www.cnblogs.com/rancvl/p/5529070.html四种启动模式standard(默认)singleTopsingleTasksingleInstancestandard(默认)系统默认的启动模式。Android是使用返回栈来管理活动的,在standard模式下,每当启动一个新的活动,它就会在返回栈中入栈,并处于栈顶的位置。...

2018-05-24 11:26:06 138

转载 Android GPS学习笔记(三)定位数据如何从GPS芯片到应用层

定位的基础知识:1、定位芯片和CPU之间通过串口进行通信2、串口和CPU之间传输的是ASCII格式的NMEA(National Marine Electronics Association)信息,如:[html] view plain copy$GPGGA,092204.999,4250.5589,S,14718.5084,E,1,04,24.4,19.7,M,,,,0000*1F  $GPGLL...

2018-05-18 17:04:22 1527 1

原创 Android GPS学习笔记(二)--架构及其初始化流程

1.GPS架构                                                            定位服务架构    如上图所示:    定位服务共分为四层:    最上面是应用层,以java为主。    第二层是框架层,这一层包含了供应用调用的接口及其系统服务的实现,主要由 Java 语言来实现。    第三层是硬件抽象层,本层由 C 以及 C++ 语言实现 ...

2018-05-18 16:52:24 4485 1

转载 android 框架之WIFI系统和系统架构

一、wpa_supplicant是什么? wpa_supplicant本是开源项目源码,被谷歌修改后加入android移动平台,它主要是用来支持WEP,WPA/WPA2和WAPI无线协议和加密认证的,而实际上的工作内容是通过socket(不管是wpa_supplicant与上层还是wpa_supplicant与驱动都采用socket通讯)与驱动交互上报数据给用户,而用户可以通过socket发送命令...

2018-05-04 16:05:18 3654

转载 android中wifi原理及流程分析

虽然该博客有点老,但是对于WiFi的学习来讲还是非常值得借鉴的wifi相关的文件位置:WIFI Settings应用程序位于       packages/apps/Settings/src/com/android/settings/wifi/JAVA部分:        frameworks/base/services/java/com/android/server/        framew...

2018-05-04 15:56:12 290

转载 蓝牙流程介绍

1 基础知识介绍1.1 缩略语BTIF: Bluetooth Interface BTU : Bluetooth Upper Layer BTM: Bluetooth Manager BTE: Bluetooth embedded system BTA :Blueetooth application layer CO: call out\CI: call in HF : Handsfree Pro...

2018-05-03 17:32:37 3794

原创 Android下bluetooth、Bluetooth apk介绍

首先我们先熟悉一下蓝牙协议的基本规范1)A2DP(Advanced Audio Distribution Profile)        高级音频、立体声规范,包括A2DP Sink和A2DP Source;2)AVRCP(Audio/Video Remote Control Profile)        音视频远程控制规范,音乐播放、暂停等;3)HFP(Hands-Free Profile) ...

2018-04-24 17:23:25 8491

原创 音频 (一) AudioRecord 架构简介

    去年做了关于蓝牙音频这一块,当时没有进行总结,现在再去总结都忘了差不多了,但是不管怎么样还是进行总结一下吧!总结过程中有什么不对的地方请大家不吝指教。音频基础知识声音有哪些重要属性呢?响度(Loudness)响度就是人类可以感知到的各种声音的大小,也就是音量。响度与声波的振幅有直接关系。音调(Pitch)音调与声音的频率有关系,当声音的频率越大时,人耳所感知到的音调就越高,否则就越低。音色...

2018-04-18 10:36:47 3024 1

转载 Android Application启动流程分析

译者注:原文分成两个部分, 链接如下:http://multi-core-dump.blogspot.com/2010/04/android-application-launch.htmlhttp://multi-core-dump.blogspot.com/2010/04/android-application-launch-part-2.html本文合二为一, 章节标题由译者加注.作者曾经在高...

2018-04-16 10:54:26 823

原创 蓝牙(三)蓝牙协议的初始化

    介绍蓝牙协议的初始化之前首先要简单讲一下蓝牙一些常用协议以及各个协议的作用,同时还要讲以下Application的知识以便对蓝牙协议的初始化有一个更清晰的认识。一、蓝牙协议简介:HSP(手机规格)– 提供手机(移动电话)与耳机之间通信所需的基本功能。HFP(免提规格)– 在 HSP 的基础上增加了某些扩展功能,原来只用于从固定车载免提装置来控制移动电话。A2DP(高级音频传送规格)– 允许...

2018-04-16 10:45:16 2310

原创 蓝牙(三)a2dp连接

以下内容都是基于android6.0的基础上讲的,相对于android4.4架构有了很大改动。先借用一下图用一下。 上图描述的是蓝牙协议栈,通过该图,查看A2dp的代码在协议栈的调用流程。其分层架构如下:  1.蓝牙的系统服务service通过JNI与bluedroid协议栈进行通信。协议栈分为两层,Bluetooth Embedded System(BTE)和Bluetooth Applicat...

2018-04-13 17:17:17 8365 1

原创 蓝牙(二)蓝牙搜索、配对、连接

1.搜索从上一节我们可以知道,蓝牙状态发生了改变,并发生了回调。咱们就从回调开始。DevicePickerFragment.java 用于蓝牙设置界面的蓝牙配置和管理 @Override public void onBluetoothStateChanged(int bluetoothState) { super.onBluetoothStateChanged(blueto...

2018-04-12 17:36:50 9656 5

原创 Android Fragment详解

先以我遇到的问题来抛砖引玉02-12 09:33:22.204 E/AndroidRuntime( 2660): FATAL EXCEPTION: main02-12 09:33:22.204 E/AndroidRuntime( 2660): Process: com.hound.android.omni, PID: 266002-12 09:33:22.204 E/AndroidRuntim...

2018-04-12 14:23:33 1044

原创 蓝牙(一)蓝牙设置详解

一.蓝牙相关的类    1)BluetoothSettings.java            该类是蓝牙配置和连接管理界面,就是咱们常见的蓝牙界面。它管理着蓝牙界面的加载,蓝牙搜索,蓝牙连接,蓝牙重命名等管理功能。(顺便借用一下大牛做的图片:https://www.cnblogs.com/dixonyy/p/4246057.html)    2)BluetoothEnable.java     ...

2018-04-11 19:42:59 6151

转载 Android进阶——Preference详解之初识Preference及Preference系(一)

引言很久没来得及更新博客了,时间总是不够,以前的知识还没来得及总结完毕,新的知识又源源不断地接触到,工作也很忙,但还是没有忘记自己最低点目标每个月至少四篇。好了,废话就到这里啦,开始进入正文,这篇文章如标题所言,(准确地来说应该需要好几篇文章可能才能总结完毕吧)主题只有一个另一种构建UI的方式——通过Preference去构建UI,而不是直接通过layout方式(或许说得不够准确,因为Prefer...

2018-04-11 10:27:42 256

转载 Android进阶——Preference详解之Preference系的基本应用和管理(二)

引言前面简单描述下了Preference的家族构成和基本知识,相信对于Preference早已不会陌生,肯定也跃跃欲试了吧,这篇文章就给大家总结下Preference、PreferenceActivity、PreferenceGroup、RingtonePreference的普通应用和管理,还有通过一些测试来验证一些机制和原理。一、PreferenceActivity1、PreferenceAct...

2018-04-11 10:26:50 1277

转载 android webview 使用详解

前言现在很多App里都内置了Web网页(Hybrid App),比如说很多电商平台,淘宝、京东、聚划算等等,如下图上述功能是由Android的WebView实现的,其中涉及到Android客户端与Web网页交互的实现今天我将全面介绍Android通过WebView与JS交互的全面方式阅读本文前请先阅读:Android开发:最全面、最易懂的Webview详解目录1. 交互方式总结Android与JS...

2018-04-11 09:11:12 86

原创 IllegalStateException: Fragment already added

该问题是由于要显示的Fragment已经存在与记录当中,但是你又第二次add.if (!fragment.mDetached) {1218 if (mAdded.contains(fragment)) {1219 throw new IllegalStateException("Fragment already added: " + frag...

2018-04-10 18:04:06 1335

转载 WebView处理网页返回的错误码信息

本节引言:嘿嘿,假如你们公司是做HTML5端的移动APP的,就是通过WebView来显示网页的,假如你访问的网页 不存在,或者其他错误,报404,401,403,30X等错误的状态码,如果直接弹出WebView默认的错误 提示页面,可能显得不那么友好,我们可以重写WebViewClient的onReceivedError()方法来实现我们 想要的效果,一般的做法有两种,一种是:我们自己在asset...

2018-04-09 14:34:32 818

转载 WebView缓存问题

本节引言:现在很多门户类信息网站,比如虎嗅,ifanr,钛媒体等等的APP,简单点说是信息阅读类的APP,很多 都是直接嵌套一个WebView用来显示相关资讯的,这可能就涉及到了WebView的缓存了!所谓的页面缓存 就是指:保存加载一个网页时所需的HTML,JS,CSS等页面相关的数据以及其他资源,当没网的时候或者 网络状态较差的时候,加载本地保存好的相关数据!而实现这个缓存的方式有两种,一种是...

2018-04-09 14:33:13 5929

转载 WebView文件下载

本节引言本节给大家介绍的是WebView下载文件的知识点,当我们在使用普通浏览器的时候,比如UC, 当我们点击到一个可供下载链接的时候,就会进行下载,WebView作为一个浏览器般的组件, 当然也是支持下载,我们可以自己来写下载的流程,设置下载后的文件放哪,以什么文件名 保存,当然也可以调用其它内置的浏览器来进行下载,比如Chrome,UC等等! 下面给大家演示下用法!1.调用其它浏览器下载文件:...

2018-04-09 14:32:11 1453

MVC架构模式简介.pptx

本文档是看过很多MVC资料进行整理的,希望此文档能够对大家有一定的帮助。

2019-08-28

常用的最新BT协议规范说明文档

包括AVRCP_v1.6.2、A2DP_v1.3.2、FTP_v1.3.1、HFP_v1.7.2、HID_v1.1.1、Mesh Device Properties v1.0、PBAP_v1.2.3、3DSP_v1.0.3

2019-05-12

A2DP_v1.3.2.pdf

该文档讲述了a2dp的协议规范,对于蓝牙开发者而言,研究了解一下协议规范会对蓝牙有一个更清楚的认识。

2019-05-11

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

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