自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(150)
  • 资源 (6)
  • 收藏
  • 关注

原创 Android 使用ping命令判断当前网络状态

ping命令是用来测试和诊断网络连接问题的基本命令,当然我们的终端设备(手机/平板/车机)都可以用这个命令来判断当前网络是否有流量的状态,本篇文章主要介绍Linux的ping命令,因为Android系统也是使用了Linux内核。然后使用ping命令封装一个判断当前网络是否有流量的方法。

2024-04-15 13:35:08 951

原创 Android Studio引入framework.jar包

Android Studio 引入framework.jar 步骤,记录笔记Android源码编译产生的framework.jar 在不同的版本上生成路径是不同的Android N/O: 7 和 8Android P/Q: 9 和 10Android R: 11以上。

2024-04-11 13:57:48 558

原创 Git命令总结

本篇文章总结的常用git命令,比较实用。

2024-03-27 16:06:04 426

原创 Ubuntu18.04 安装搜狗输入法

自己的Ubuntu 18.04系统配置中文搜狗输入法,安装步骤,亲测可用。

2024-03-12 22:59:25 593

原创 Android轻量级进程间通信Messenger源码分析

Android中比较有代表性的两大通信机制:1. 线程间Handler通信 2. 进程间Binder通信,本篇文章中我们在理解AIDL原理的基础上来解读一下Messenger的源代码, 并结合示例Demo加深理解。在看本篇文章前,建议先查阅一下笔者的Android 进程间通信机制(六) 手写AIDL文件首先说下我对Messenger的个人理解:1. 从概念上阐述Messenger进程间通信的信使,是一个轻量级的IPC通信方案, 和Message消息不是一个概念。2. 从实现上描述。

2024-02-20 10:11:20 1079

原创 ASCII码表

0~31及127(共33个)是控制字符或通信专用字符(其余为可显示字符),如控制符:LF(换行)、CR(回车)、FF(换页)、DEL(删除)、BS(退格)、BEL(振铃)等;奇校验规定:正确的代码一个字节中 1 的个数必须是奇数,若非奇数,则在最高位 b7 添1;偶校验规定:正确的代码一个字节中1的个数必须是偶数,若非偶数,则在最高位 b7 添1。标准 ASCII 码也叫基础ASCII码,使用 7 位二进制数来表示所有的大写和小写字母,数字 0 到 9、标点符号, 以及在美式英语中使用的特殊控制字符。

2024-02-01 09:47:05 592

原创 Android 通过adb命令查看应用流量

若要输出额外信息,如详细的唯一用户 ID (UID) 信息,请包含。以下示例输出内容中列出了连接的设备的活跃接口和活跃 UID 接口。在大多数情况下,活跃接口和活跃 UID 接口的信息是相同的。有两个这样的行,第一个表示移动数据连接,第二个表示 Wi-Fi 连接。输出内容因连接的设备上搭载的 Android 版本不同而异。总结: 第四种方式,就是需要自己去把每个时间段的接收和发送的byte数相加处理,然后统计总流量。wlan0: 表示代表的是wlan端口,wifi流量就是用的这个Interface。

2024-01-22 11:15:32 1120

原创 C++基础系列(三)Const 关键字

有时我们希望定义这样一种变量,它的值不能被改变。例如,用一个变量来表示缓冲区的大小。使用变量的好处是当我们觉的缓冲区大小不再合适时,很容易对其进行调整。另一方面,也应随时警惕防止程序一不小心改变了这个值。为了解决问题,我们引入const关键字。

2024-01-18 17:05:35 400

原创 warning: ISO C++ forbids converting a string constant to ‘char*‘ [-Wwrite-strings]

简单来说,在赋值时,左右两边的类型不同的话,编译器会implicit conversion来强制转换类型,赋值号右边的“China”是一个不变常量类型是const char。,左边name是一个指针。如果强行赋值的话,那么编译器会将右边强制转化成一个指针类型,这种情况会使得程序在别的编译器可能会出现报错。解决办法就是主动将右边转化成指针类型或者将左边转化成const不可修改。翻译成中文的意思是“禁止将字符串常量转换为“char *”

2024-01-16 08:59:13 1195

原创 java基础系列(十一) this关键字

其实,JVM在堆空间给对象分配空间时,每个对象都有一个隐藏的属性this,this指向该对象本身。即,如果用C语言来解释的话,this就是一个指向堆空间中对象本身的指针,只不过在Java中没有指针,叫做引用而已。this自己是对象的一部分,它也在堆空间,但是它又指向了它自己。一看图就明白了,就是这么回事儿。当然,我们还可以通过另一种直观的方法来理解this,我们可以。进行该操作需要用到hasCode方法(之后我们会讲到hasCode)。this关键字的本质到底是什么呢?

2023-12-27 11:04:12 431

原创 java基础系列(十)多态理解

多态是面向对象程序设计的三大特征之一,面向对象的三大特征:封装、继承、多态。封装给对象提供了隐藏内部特性和行为的能力,保护对象内部的状态,提高了代码的可用性和可维护性。继承关系使一个子类能继承父类的特征,而不需要再次编写相同的代码,并且附加一些新特征。子类是它的父类的特殊化,每个子类的实例都是其父类的实例。//父类类型 变量名 = new 子类类型();

2023-12-21 13:45:58 88

原创 C++基础系列(二)纯虚函数

定义纯虚函数的一般格式为:virtual返回类型 函数名(参数表)=0;含有纯虚函数的基类是不能用来定义对象的。纯虚函数没有实现部分,不能产生对象,所以含有纯虚函数的类是抽象类。定义纯虚函数必须注意:1定义纯虚函数时,不能定义虚函数的实现部分。即使是函数体为空也不可以,函数体为空就可以执行,只是什么也不做就返回。而纯虚函数不能调用。2 “=0”表明程序员将不定义该函数,函数声明是为派生类保留一个位置。=0”本质上是将指向函数体的指针定为NULL。3。

2023-12-20 16:16:46 80

转载 bat脚本的命令语法

自定义变量就是由我们来给他赋予值的变量要使用自定义变量就得使用set命令了,看例子:@echo offset var=我是值echo %var%pause保存为BAT执行,我们会看到CMD里返回一个 "我是值"var为变量名,=号右变的是要给变量的值这就是最简单的一种设置变量的方法了如果我们想让用户手工输入变量的值,而不是在代码里指定,可以用用set命令的/p参数例子:@echo offset /p var=请输入变量的值echo %var%pause。

2023-12-18 21:24:49 369

原创 使用Android Studio的Gradle Tasks对源码生成jar包

As工具可以用来编译第三方源码(比如okhttp ,retrofit源码), 用于打jar包或aar包,使用工具自带的Tasks工具可以帮忙我们完成这些事情。

2023-12-12 08:30:12 268

原创 Vscode中字符串报错:Unknown word.cSpell

是vscode IDE工具中的插件 Code Spell Checker 会检查字符串的合理性,我们写的中式拼音的字符串,不是一个标准英文单词,就会提示错误,解决方法就是让该插件遇到特定词汇不报错。

2023-11-28 19:32:27 1917 1

原创 bat脚本语法

bat脚本语法。

2023-11-10 19:47:20 563

原创 C++基础系列(一) 对象指针

在程序中定义了一个函数,那么在编译时系统就会为这个函数代码分配一段存储空间,这段存储空间的首地址称为这个函数的地址,而且函数名表示的就是这个地址。其返回值是一个 int 类型的指针,是一个地址。没有括号,*与int结合,int*为返回类型,p就是一个函数名,这时就是一个指针函数,只不过返回值类型为int*。有括号,*与p结合,*p就是个指针,指向返回值为整型且有两个整型参数的函数的指针,因此称为函数指针。可以简单粗暴的理解为,指针函数的*是属于数据类型的,而函数指针的星号是属于函数名的。

2023-10-19 17:19:43 425

原创 Ubuntu 配置repo环境

下载Android源码的时候,自己的Ubuntu电脑需要初始化repo环境,这样子你就可以使用 repo init -u ssh: repo sync 等命令下载代码, 在工作中,一般公司的代码仓 git-repo 是固定的,首次就需要把repo的初始化环境配置好,比较简单,随笔记录一下。

2023-10-05 18:59:10 3310 2

原创 编写Android.mk / Android.bp 引用三方 jar 包,aar包,so 库

在Android10之后,所有项目工程中,官方推荐使用Android.bp去编译构建,以前使用Android.mk构建的项目随着版本迭代升级,慢慢需要变更为Android.bp, 两者的语法都需要去了解并熟练使用。笔者之前写过Android.mk的语句介绍,里面有介绍每句代码的含义编写Android.mk把Android studio项目编译到AOSP源码中后来也总结过 Android.bp基本用法:Android.bp 语法和使用比较基础,也是在项目中运用到了就记录下来。

2023-09-28 15:20:11 4761 2

原创 Android 获取网络连接状态新方法

Android12上,有的app模块判断当前网络的类型和连接状态时,还是使用的旧的API,导致返回的结果不准确,影响代码逻辑判断,本篇文章就这一问题,整理一下判断网络类型和连接状态的新方法。

2023-08-03 22:28:51 6203 1

原创 Ubuntu使用Disks图形化工具挂载新磁盘

搜索Ubuntu系统自带的Disks软件,使用Disks图形化工具挂载新磁盘

2023-07-15 10:23:34 2033 1

原创 ubuntu彻底卸载libreoffice和安装wps

Ubuntu环境卸载默认的Libreoffice软件, 安装 wps word文档编辑等软件

2023-07-09 11:57:24 2420

原创 安装Ubuntu系统详细教程

本篇文章详解介绍一下如何安装Ubuntu系统,笔者在安装的过程中踩过很多坑,重装了很多次,现在把安装过程中遇到的问题也列出来,供大家参考。

2023-06-18 17:11:52 53326 2

原创 我的创作纪念日

希望在Android这条路上有更多的积累,可以写出更多出彩的文章,可以和大家分享自己的理解和知识,也希望在这个平台上认识更多志同道合的朋友。当时开始做Android开发的时候,也是从小白开始的,也是看了很多人的博客,包括其他平台的文章, 后来一想自己也工作了这么久,有点工作经验积累了,也可以把自己知道的知识分享出来,供其他人参考。

2023-06-17 22:06:58 169

原创 Android 进程间通信机制(六) 手写AIDL文件

本文重点讲解一下AIDL文件结构以及类中每个方法的含义. 然后把AIDL中每个方法的用途理解清楚后, 我们就不依赖AS自带的工具创建, 而是自己手动去写一个AIDL文件, 在手写的代码中添加自己的日志, 根据打印理清楚客户端与服务端跨进程通信的流程图, 目的加深对IPC机制的理解.

2023-06-14 17:31:33 1374

原创 在Ubuntu上增加swap交换空间

Ubuntu默认分配的交互空间swap 为 2G 实际上在代码编译的过程中,如果你的CPU内存不超过16G的话,交换空间就有必要去设置更改一下。

2023-06-01 09:34:02 3830

原创 Ubuntu 更换阿里云镜像步骤

安装Ubuntu系统成功后,最好优先配置好源文件,方便安装工具和配置环境,本文介绍一下更换方法,在不同版本上的sources.list 配置。

2023-05-21 20:52:53 1193

原创 Ubuntu环境 安装搜狗输入法

Ubuntu20.4 系统安装输入法的文章,按照文章一步一步的来,安装成功

2023-05-12 16:13:38 894

转载 Ubuntu安装openjdk8

Ubuntu安装openjdk8

2023-05-05 13:08:31 2199

原创 Android 屏蔽锁屏界面上的通知显示

在插入SD后, 锁屏状态下, 去掉提示“SD卡可用于传输照片和媒体文件”需求拆解: 要求正常显示在SystemUI下拉状态栏, 只需要屏蔽在锁屏状态下的通知.

2023-04-16 21:43:09 970 1

原创 Android ActivityManagerService总结(四)startActivity流程

AMS(ActivityManagerService)是Activity管理的核心组件,提供了Activity的启动、生命周期管理、栈管理等功能,熟悉AMS会对我们认识Activity的工作原理有很大的帮助.AMS中内容实在是太多了,对它的分析也不可能面面俱到,从Activity的启动、Activity消息回传(onActivityResult)、Activity栈管理、AMS与WMS和PMS的协同工作这几个点深入理解一下,通过对源码的流程梳理, 对AMS有进一步的理解.

2023-04-04 22:55:02 1075 3

原创 Ubuntu adb / fastboot 报错:no permissions (missing udev rules? user is in the plugdev group);

当adb devices 和 fastboot devices 如果出现no permissions (missing udev rules? user is in the plugdev group报错, 可以按照上面的方法解决,亲测有效。

2023-04-04 17:42:25 1365

原创 startActivity的生命周期

AMS(ActivityManagerService)是Activity管理的核心组件,提供了Activity的启动、生命周期管理、栈管理等功能,熟悉AMS会对我们认识Activity的工作原理有很大的帮助.AMS中内容实在是太多了,对它的分析也不可能面面俱到,从Activity的启动、Activity消息回传(onActivityResult)、Activity栈管理、AMS与WMS和PMS的协同工作这几个点深入理解一下,通过对源码的流程梳理, 对AMS有进一步的理解.

2023-04-03 13:29:44 610

原创 Android ActivityManagerService总结(三)Activity管理相关数据结构

接上一篇文章, 介绍了一下AMS的内部数据结构, ProcessRecord容器,还有四大组件记录表 , 本篇文章继续讲解一下与Activity管理相关的数据结构, 重点关注如下5个类文件:ActivityRecord TaskRecord ActivityStack ActivityStackSupervisor。

2023-04-03 08:28:58 510 1

原创 Android ActivityManagerService总结(二)AMS组成

组件运行才是进程存在的意义,由于android系统进程间的无缝结合,所以系统需要控制到组件级别,所有的组件信息都需要映射到系统,一个ActivityRecord记录对应一个Activity的信息,一个ServiceRecord记录对应一个Service的信息,一个ConnectionRecord记录对应一个bind service的客户端信息,一个ReceiverList对应处理同一事件的一组广播,一个ContentProviderRecord记录对应一个ContentProvider信息,一个Conten

2023-04-02 13:12:37 838

原创 Android ActivityManagerService总结(一)AMS启动

ActivityManagerService是Android系统中一个特别重要的系统服务,也是我们上层APP打交道最多的系统服务之一。ActivityManagerService(以下简称AMS) 主要负责四大组件的启动、切换、调度以及应用进程的管理和调度工作本文主要介绍一下启动过程

2023-04-02 11:15:40 1087

原创 StarUML画类图

当然StarUML这个工具可以画时序图 和 流程图 , 流程图的画法参考本篇文章主要讲解一下利用此工具来画类图(Class Diagram)

2023-04-01 15:30:07 7196

原创 Android汽车服务篇(七) CarPowerManagementService

总体来说, 电源状态的变化由车辆主控单元由下往上推送至CarPowerManagementService举例来说, 由于用户的熄火状态(具体的信号触发条件不同), 车辆的电源状态开始变化, 车辆主控单元将信号发送给车载娱乐系统(In-Vehicle Infotainment , IVI)单元 即 AAOS车载娱乐系统. 进而在由 VehicleHAL硬件抽象层上报给CarPowerManagementService, 最后进入到Android系统的关机流程.

2023-03-31 23:00:43 2436

原创 Android汽车服务篇(六) CarPackageManagerService

CarPackageManagerService主要用于车上使用场景扩充了一些包管理相关的接口. 包括黑白名单的机制. 这主要是出于安全的考虑, 车上的应用有更严格的限制. 结合用户体验限制对运行在AAOS上的应用有一个更好的约束.

2023-03-31 10:40:29 641

原创 Android汽车服务篇(五) CarDrivingStateService

在UX Restrictions中需要根据当前的车辆行驶状态,决定当前的限制规则. 其中行驶状态地获取就是通过CarDrivingStateService来实现的. 它的主要职责就是对外提供车辆的行驶状态信息. 应用可以使用CarDrivingStateManager获取和监听驾车状态,CarDrivingStateManager中的方法不多, 用法上非常简单. 需要注意的是相关接口是系统接口(SystemAPI), 系统应用才能使用.

2023-03-30 22:28:01 557

Android 进程间通信机制(六) 手写AIDL文件

​ 阅读本篇文章前, 请先查看一下笔者之前的写的两篇博客文章: Android Service知识  和  Android AIDL使用         进程间通信涉及到客户端和服务端, 肯定有绑定服务的过程, 所以要阅读一下Android Service相关的知识,   跨进程通信的媒介aidl文件,我们也必须要了解怎么创建的,有什么规则,所以请先阅读一下Android AIDL使用这篇文章. ​csdn : https://blog.csdn.net/u012514113/article/details/129473916

2023-06-14

指纹人脸生物校验,基于android源生接口显示相应的对话框

 为了增加用户的隐私和安全,需保护您的应用中的敏感信息或付费内容,一种方法是请求生物识别身份验证,例如使用人脸识别或指纹识别。本篇文章介绍了如何在您的应用中支持生物识别登录流程。 系统支持您声明以下类型的身份验证,   根据其欺骗和冒名顶替接受率以及生物识别管道的安全性,生物识别传感器可分为3级(强)、2级(弱)、1级(便利) 博客文章链接:https://blog.csdn.net/u012514113/article/details/128923564

2023-02-08

DownloadManager下载QQ.apk 例子        

    DownloadManager是一个可以处理长时间运行的HTTP下载的系统服务,客户端请求一个URL地址去下载一个目标文件, 下载管理器将在后台进行下载,处理HTTP交互,并在失败或连接更改和系统重新启动后重试下载。

2022-11-01

Android 动态更新Menu菜单

Android 动态更新Menu菜单

2022-09-02

Android 反编译apk工具包

反编译apk,我们需要如下3个开发工具:Apktool dex2jar jd-gui Apktool : 这个工具是用来反编译apk中的资源文件,如res,AndroidManifest.xml等 dex2jar : 这个工具是用来反编译apk的代码 jd-gui : 这个用来查看代码的工具 ———————————————— 版权声明:本文为CSDN博主「broadview_java」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/u012514113/article/details/126538718

2022-08-26

Android 反编译apk工具包

原文博客链接:https://blog.csdn.net/u012514113/article/details/126538718

2022-08-26

AlarmManager + Broadcast 循环启动任务

1. 通过 AlarmManager 来设置定制任务 2. 用广播去启动Service 3. Service中onStartCommand()方法执行任务

2022-07-04

Andorid新闻客户端app

1.一款新闻客户端app 2.使用Fragment + TabLayout + ViewPager 的MD UI设计风格,有 4个tab页面:科技,娱乐,体育,军事; 3.状态栏菜单有 主页, 设置, 我的 三个子菜单选项和完整功能 3.网络请求使用okhttp3 开源框架 4.本源码非常适合Android初学开发者或做毕业论文设计使用,供下载参考学习

2020-10-16

android 框架解密

android 进阶教程,Android框架揭秘》其实是韩国-金泰延写的一本书,个人觉得很赞。以前对Android的了解非常零散,但这本书系统讲述了Android的框架和实现原理,对系统的整体把握和原理了解非常有帮助, Binder使用运行在内核空间中的抽象驱动程序Binder Driver完成进程间的IPC数据交换。

2019-04-25

Android经典项目案例开发实战宝典(郭金尚) 实例源代码 和 第5章文件管理器 电子文档

Android经典项目案例开发实战宝典(郭金尚) 实例源代码 和 第5章文件管理器 电子文档 欢迎下载学习.

2014-12-24

JAVA大学基础教程(第六版)

java 大学基础教程(第六版),java入门必看的教材,如果和配合英文原版看的话,英语也会有很大的进步!

2013-10-27

java程序员由菜鸟到笨鸟.pdf

study java step by step,很好的一些经验总结!

2013-10-20

空空如也

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

TA关注的人

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