乌啼夜的酒痕
码龄11年
求更新 关注
提问 私信
  • 博客:58,455
    社区:1
    问答:5,311
    63,767
    总访问量
  • 29
    原创
  • 36
    粉丝
  • 46
    关注
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:浙江省
加入CSDN时间: 2016-01-26

个人简介:Android车载系统攻城狮

博客简介:

乌啼夜的酒痕

博客描述:
或许我 不该问 让你平静的心再起涟漪
查看详细资料
个人成就
  • 获得36次点赞
  • 内容获得14次评论
  • 获得117次收藏
  • 博客总排名1,332,226名
创作历程
  • 13篇
    2019年
  • 21篇
    2018年
成就勋章
TA的专栏
  • Launcher源码阅读
    10篇
  • 深入理解Android源码
    9篇
  • 音视频开发
    1篇
  • 安卓
    28篇
  • android事件
    1篇
  • 进程通信
    3篇
  • 中间件
  • linux
    1篇

TA关注的专栏 0

TA关注的收藏夹 0

TA关注的社区 2

TA参与的活动 0

兴趣领域 设置
  • 数据结构与算法
    数据结构
  • 移动开发
    kotlinflutterandroid studio
  • 软件工程
    性能优化
  • 学习和成长
    面试
创作活动更多

AtomGit「码动四季·开源同行」秋季征稿活动

秋季征稿主题:开源成果经验分享 成果不止一种形态,我们为你准备了六大赛道,总有一款适合你: 开源项目成果复盘 把项目一年/一季的成长摊开来看:里程碑复盘、Star 与用户增长复盘、版本迭代复盘、从 0 到 1 的发布复盘。 🖊️ 示范选题: ●开源项目从 0 到 1000 Star,我做对了什么 ●开源一周年,我交出的成绩单 这类文章不只是一次经验分享,也是一张项目名片。欢迎将项目托管到 AtomGit 并申请成为 G-Star 项目,通过后可获得平台流量推荐、项目宣传等权益。(G-Star:AtomGit 最具影响力开源项目) ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/1f90c61528ad410d8d66f9d0e3707a5a.png) 咨询 G-Star 项目申请 2️⃣ 技术经验体系化沉淀 踩坑合集、最佳实践总结、工具链实战、CI/CD 流水线搭建、代码重构与架构演进。 🖊️ 示范选题: ●提了 50 个 PR 后,我总结的开源协作避坑清单 ●一次重大重构复盘:把单体拆成可维护的模块 3️⃣ AI 赋能开源的实战成果 AI 编程助手实战测评、基于开源模型的微调与应用开发、AI 辅助研发提效流水线。 🖊️ 示范选题: ●我用 AI 编程助手把提 PR 效率翻了 3 倍 ●基于开源大模型搭了个 XX 工具(附完整教程) 4️⃣ 开源共建笔记|文档、社区与布道 开源文档写作与翻译、issue 互助经验、组织 meetup、用开源项目做教学与分享。 🖊️ 示范选题: ●一个优秀开源项目,文档应该怎么写 ●我用开源项目做了个线上 Workshop ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/23e83ceebc594c379f7fc6aa8dcfa40c.png) 扫码加入码动四季投稿交流群,和更多伙伴一起交流技术!

16人参与 去参加
  • 最近
  • 文章
  • 专栏
  • 代码仓
  • 资源
  • 收藏
  • 关注/订阅/互动
更多
  • 最近

  • 文章

  • 专栏

  • 代码仓

  • 资源

  • 收藏

  • 关注/订阅/互动

  • 社区

  • 帖子

  • 问答

  • 课程

  • 视频

搜索 取消

深入理解AMS之应用进程创建

在安卓系统中诸多应用程序都会在桌面应用Launcher中创建一个shortcut启动图标,当我们点击这个图标就可以进入其所指示的应用程序首页,这个过程是通过调用ActivityManagerService(以下简称AMS)的方法startActivity()完成的。当调用startActivity()后AMS会首先判断当前进程是否已经创建,如果没有创建则会进入应用进程的创建流程。
原创
博文更新于 2019.08.24 ·
1662 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

常见音频编码格式解析

MPEG-1 or MPEG-2 Audio Layer III是一种音频压缩技术,其全称是动态影像专家压缩标准音频层面3(Moving Picture Experts Group Audio Layer III),简称为MP3,是目前最流行的音频编码格式。   MP3文件是由帧(frame)构成的,帧是MP3文件最小的组成单位。MPEG音频文件是MPEG1标准中的声音部分,也叫MPEG音频层,它根据压缩质量和编码复杂程度划分为三层,即 Layer-1、Layer2、Layer3,且分别对应MP1、MP2、
转载
博文更新于 2019.12.19 ·
10308 阅读 ·
2 点赞 ·
0 评论 ·
10 收藏

深入理解Handler机制

消息机制概述   在Android系统主要的通信机制有binder机制和handler消息处理机制,前者多用于进程间的通信,后者则多用于进程内线程间的通信。其实,android进程就是基于消息驱动的。   一般而言,消息处理机制都应含以下几个要素: 消息对象 消息的投送者 目标消息队列 消息的处理(轮询器)   在Android系统中上述要素大致对应为Message、Handler、Messa...
原创
博文更新于 2019.10.11 ·
1159 阅读 ·
4 点赞 ·
1 评论 ·
2 收藏

深入理解Handler机制

消息机制概述   在Android系统主要的通信机制有binder机制和handler消息处理机制,前者多用于进程间的通信,后者则多用于进程内线程间的通信。其实,android进程就是基于消息驱动的。   一般而言,消息处理机制都应含以下几个要素: 消息对象 消息的投送者 目标消息队列 消息的处理(轮询器)   在Android系统中上述要素大致对应为Message、Handler、Messa...
原创
博文更新于 2019.10.11 ·
1159 阅读 ·
4 点赞 ·
1 评论 ·
2 收藏

深入理解AMS之startActivity

Activity作为作为安卓中直接与用户进行交互的页面,我们可以点击桌面Launcher的shortcut图标来进入应用程序主页面,在应用程序内也可以启动其他应用内或其他应用的Activity,虽然场景不同,但其启动方式却大同小异。
原创
博文更新于 2019.09.15 ·
1623 阅读 ·
2 点赞 ·
1 评论 ·
3 收藏

fork( )函数详解

一、fork入门知识   一个进程,包括代码、数据和分配给进程的资源。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。   一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间。然后把原来的进程的所有值都复制到新的新进程中,只有少数值与原来的进程的值不同。相...
转载
博文更新于 2019.08.20 ·
590 阅读 ·
2 点赞 ·
0 评论 ·
1 收藏

深入理解AMS之Activity管理

Activity在应用端由ActivityClientRecord负责描述其生命周期的过程与状态,但最终这些过程与状态是由ActivityManagerService(以下简称AMS)来管理和控制的。类似于应用进程在AMS中使用ProcessRecord描述,安卓四大组件在AMS中也拥有对应的对象来描述。
原创
博文更新于 2019.08.10 ·
1290 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

深入理解AMS之启动过程

ActivityManagerService(以下简称AMS)是系统服务的一部分,它在SystemServer中被启动,主要负责四大组件状态管理与查询、进程创建与状态管理、Task切换与调度、cpu或mem等辅助状态监听等工作。它是系统核心服务,也是日常我们使用得最频繁的系统服务之一。
原创
博文更新于 2019.07.31 ·
2189 阅读 ·
6 点赞 ·
0 评论 ·
11 收藏

深入理解AMS之Activity

Activity是我们开发中使用的最多、最频繁的程序组件。通过在AndroidManifest.xml中构建一个Activity标签,我们就可以通过startActivity方法将其以一个窗口页面的形式呈现在屏幕上,用户可以通过这个窗口进行诸如发短信、聊天、打电话等操作。
原创
博文更新于 2019.07.06 ·
1273 阅读 ·
3 点赞 ·
0 评论 ·
2 收藏

整车CAN网络介绍

整车CAN网络介绍 CAN(Controller Area Network)控制器局域网络,CAN网络在早期的整车应用中以BCM(车身控制器)为控制中心,主要是车身零部件(雨刮/大灯/车窗…),智能硬件较少,所以早期的正常CAN网络把所有其他的ECU全部放在Other ECU里边,如下图。 ECU(Electronic ControlUnit)电子控制单元,是汽车专用微机控制器,一个ECU...
转载
博文更新于 2019.06.22 ·
666 阅读 ·
0 点赞 ·
0 评论 ·
4 收藏

ZeroC Ice概述

The Internet Communications Engine(Ice)是一个面向对象的RPC框架,它可帮助您以最小的工作量构建分布式应用程序。其负责与底层网络编程接口的所有交互,使得开发者能够将精力集中在应用程序的逻辑处理上,而无需关心诸如打开网络连接、网络传输数据序列化与反序列化、失败重连等细节的实现。
原创
博文更新于 2019.06.17 ·
3387 阅读 ·
1 点赞 ·
0 评论 ·
7 收藏

Win10 环境下安装Ubuntu 18.04过程记录

Win10 环境下安装Ubuntu 18.04过程记录 步骤1:下载镜像文件 从Ubuntu官网https://www.ubuntu.com/download/server下载系统的iso镜像文件 ,下载后不用解压,过程如下: 步骤2:格式化U盘  ...
转载
博文更新于 2019.06.03 ·
384 阅读 ·
0 点赞 ·
0 评论 ·
8 收藏

深入理解Binder机制

Binder概述   Binder其前身是由Be Inc.和Palm,Inc.开发的OpenBinder,而后Google将其带入Android系统作为主要的跨进程通信技术使用。Binder之所以能被Google青睐跟其优越的传输性能及安全性能是分不开的。在传输性能上,传统的linux系统IPC如Socket、管道、消息队列等在跨进程传输时数据会被拷贝2次,而Binder则利用mmap只需一次拷贝...
原创
博文更新于 2019.05.05 ·
2680 阅读 ·
4 点赞 ·
3 评论 ·
11 收藏

Linux 设备驱动--- 内核等待队列 --- wait_queue_head --- wait_event_interruptible --- 按键驱动程序优化

等待队列:           在 Linux 驱动程序设计中,可以使用等待队列来实现进程的阻塞.           等待队列可以看作保存进程的容器,在阻塞进程时,将进程放入等待队列;     &nbs...
转载
博文更新于 2019.04.21 ·
273 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

利用System.arraycopy判断多击事件

双击事件代码如下: ```java long[] mHits = new long[2]; /** * 为主界面的回退事件做处理 */ @Override public void onBackPressed() { System.arraycopy(mHits, 1, mHits, 0, mHits.length - 1); mHits[mHits.length - 1] = SystemClock.uptimeMillis(); if (SystemClock.uptimeM
原创
博文更新于 2019.03.31 ·
541 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Android Init Language语法概述

init.rc概述   init.rc是Androrid的可配置初始化文件,其由init负责解析,在定制开发下可在init.rc中添加指令来改变系统启动过程。此配置文件使用的Android Init Language是一种类C风格的程序语言,主要由Actions、Commands、Services、Options四大板块的语句组成,一般一条语句占据一行,单词之间由空格分隔。   AIL语言的注释一...
原创
博文更新于 2018.11.01 ·
488 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

【Settings开发】蓝牙模块(二)

蓝牙列表点击   在蓝牙设置页面,打开搜索到的蓝牙设备是以BluetoothDevicePreference的形式展示在PreferenceScreen中,当我们点击蓝牙列表中的蓝牙设备时,需根据此设备状态的不同做出不同的响应。 void onClicked() { int bondState = mCachedDevice.getBondState(); ...
原创
博文更新于 2018.10.10 ·
2076 阅读 ·
0 点赞 ·
0 评论 ·
11 收藏

【Settings开发】蓝牙模块(一)

概要 蓝牙-bluetooth此名取自公元十世纪一位颇有作为的丹麦国王Harald bluetooth,是由爱立信公司于上世纪90年代牵头发展而来的一种短距离无线通信技术标准,其具有体积小、抗干扰、低功耗等特点,该协议目前由蓝牙技术联盟(SIG)负责维护管理。 历史协议版本 协议版本 发布时间 主要特点 1.0/1.0B 1999 产品互操作性差 ...
原创
博文更新于 2018.10.10 ·
2161 阅读 ·
1 点赞 ·
4 评论 ·
3 收藏

【Settings开发】WiFi模块(二)

  前言     Wifi p2p是Android4.0以上用于用户之间端对端传输文件的协议,其不耗流量,且传输效率比蓝牙传输高的多。其操作流程如下: 点击进入Wifi p2p设置页,华为手机一般在WLAN页的列表中可见,OPPO手机一般在其他无线连接页的列表中。 搜索附近可连接的p2p Devices。其搜索结果会以Preference的形式添加到列表中。 在可用的Devices列表中...
原创
博文更新于 2018.09.12 ·
1461 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

【Settings开发】WiFi模块(一)

概要    本篇主要介绍Settings应用的WiFi模块首页如何控制WiFi功能的开关,及如何扫描及连接一个WiFi热点。使用到的类说明    WiFiManager:提供基础的api来管理WiFi的联通性等操作。    Scanner: 负责扫描WiFi。    WiFiEnabler:内部包含SwitchUI控件,用户可点击此控件打开或者关闭WiFi。    AccessPoint:继承自P...
原创
博文更新于 2018.07.16 ·
2309 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏
加载更多