MVC-三层架构简介
前序
慢慢理解世界,慢慢更新自己
参考博客
黑洞晓威 深入MVC模式和三层架构
本文中的所有内容大部分来源于网络资料,如有侵权请联系本人修改或删除,请大家多多支持原创!非常感谢!
MVCMVC 基本模型 MVC(Model-View-Controller)是一种软件设计模式,旨在将应用程序分为三个主要组成部分:模型(Model)、视图(View)和控制器(Controller)。以下是MVC 模型的基本概念和职责的总结:
模型(Model):
定义数据和业务逻辑: 模型表示应用程序的数据和业务逻辑。它包括应用程序的数据结构、数据库连接、以及对数据的操作和更新方法。
独立于用户界面: 模型是与用户界面无关的部分,它专注于处理应用程序的数据和业务规则。
视图(View):
负责显示用户界面: 视图负责显示用户界面,向用户呈现数据。它通常包含用户看到和与之交互的元素,如按钮、文本框等。
观察模型的变化: 视图观察模型的变化,以便及时更新用户界面。
控制器(Controller):
处理用户输入: 控制器负责处理用户的 ...
离别2023
前言
时光煮雨,岁月缝花,这烟火人间,事事遗憾,事事也值得!
生活 我坐在电脑前发呆许久,大脑一片空白。我的生活不是一团糟,好像是没有自己的生活。生活中既没有惊喜,也没有意外。对于我来说,生活就是电脑、手机、床。这三样东西足以把我的24小时瓜分干净。
学习 生活或许只有眼前的苟且,但书本的世界是宽广辽阔的。在这一年里,我阅读了《java 8实战》,熟悉了JUC编程、lambda表达式、IO流编程,深刻了解到自己基础太过薄弱。于是又浅读了《21天学完java》,但是明显感觉到自己的知识体系并没有完善,于是拜读了廖雪峰的java教程,才发现自己的眼界还是太过落后,虽然还未读完,但是对于完善我自己的知识体系是很有帮助的。除此之外,我还收藏了许许多多的博主,有小林coding、阮一峰、刘望舒等等知名博主,每每阅读他们的文章,收获良多。不仅在文章中学到知识,我还从群友unistd、子菲鱼、lu学长等身上学到许多。我喜欢折腾,所以摒弃了windows玩上了Linux,在使用arch linux过程中,群友的帮助对于我来说,是非常重要的。比如ath ...
Android_14_源码分析之WindowManagerService
前言
参考博客- 本文中的所有内容大部分来源于网络资料,如有侵权请联系本人修改或删除,请大家多多支持原创!非常感谢!
WindowManagerServiceActivity与Window相关概念
Activity只负责生命周期和事件处理
window只控制视图
一个Activity包含一个Window,如果Activity没有Window,那就相当于Service
AMS统一调度所有应用程序的Activity
WMS控制所有Window的显示与隐藏以及要显示的位置
Window “Window” 表明它是和窗口相关的,”窗口“是一个抽象的概念,从用户的角度来讲,它是一个”界面“;从SurfaceFlinger的角度来看,它是一个Layer,承载着和界面有关的数据和属性;从WMS角度来看,它是一个WindowState,用于管理和界面有关的状态。
表示一个窗口的概念,是所有View的直接管理者,任何视图都通过Window呈现(点击事件由Window->DecorView->View;Activity的setConte ...
Android_14_源码分析之PackageManagerService
前言
背负着过去的痛苦,夹杂着现实的烦恼,对人的心灵而言是无任何益处的
参考博客
wise丰
冬子
本文中的所有内容大部分来源于网络资料,如有侵权请联系本人修改或删除,请大家多多支持原创!非常感谢!
PackageManagerService PackageManagerService(PMS)主要是管理应用的安装,卸载,更新,解析以及权限。同ActivityManagerService,PMS也是由SystemService孵化而来。
启动与初始化
frameworks/base/services/java/com/android/server/SystemServer.java
12345678910111213141516171819202122232425262728//line 1234// Start the package manager.if (!mRuntimeRestart) { FrameworkStatsLog. ...
Android_14_源码分析之ActivityManagerService
前序
一个人知道自己为什么而活,便能忍受任何一种生活
参考博客
厚雪长坡-ActivityTaskManagerService解析
LeeDuo-深入理解ActivityManagerService
芒果蒲公英-Android14 AMS启动流程
anly_jun-探索Activity之启动Intent Flag和taksAffinity
menghaocheng-Android-AMS】ActivityManagerService启动分析
Sukai’s Blog
本文中的所有内容大部分来源于网络资料,如有侵权请联系本人修改或删除,请大家多多支持原创!非常感谢!
ActivityManagerService Android系统非常庞大、错综复杂,其底层是采用Linux作为基底,上层采用包含虚拟机的Java层以及Native层,通过系统调用(Syscall)连接系统的内核空间与用户空间。用户空间主要采用C++和Java代码,通过JNI技术打通用户空间的Java层和Native层(C/C++)。Google官方提供了一 ...
Android_14_源码分析之启动流程
前序
时间从来不语,却回答了所有问题,岁月从来不言,却见证了所有努力,愿大家遇到困难时都能换乘机遇,踏歌而行时一往无前。
参考资料
Android Framework 开发揭秘
本文中的所有内容大部分来源于网络资料,如有侵权请联系本人修改或删除,请大家多多支持原创!非常感谢!
简介 Android 是一种基于 Linux 的开放源代码软件栈,为各类设备和机型而创建。
Android 平台的基础是Linux内核。例如,Android Runtime(ART)依靠Linux内核来执行底层功能,例如线程和底层内存管理。
Linux 内核
硬件抽象层(HAL)
HAL提供标准界面,向更高级的Java API 框架显示设备硬件功能。
Android Runtime
对于运行在Android 5.5(API 21)以上的设备,每个应用都有自己的ART实例并在其自己的进程中运行。
ART编写为通过执行DEX文件在低内存上运行多个虚拟机。
ART的功能包括
预先AOT和及时JIT,编译优化 ...
AndroidTV遥控以及协议浅析
前言
失之东隅,收之桑榆
参考文章
android 红外遥控器实现原理
Android红外及蓝牙遥控器适配流程
本文中的所有内容大部分来源于网络资料,如有侵权请联系本人修改或删除,请大家多多支持原创!非常感谢!
1. 海思红外遥控
adb 调试相关命令
cat /proc/bus/input/devices 查看input设备
dumpsys input 查看input设备
gatevent -l 查看输入event事件
1.1 遥控器逻辑过程以及源码分析
逻辑过程
从xml中获取物理键值,配对解析
linux的标准键值
自定义的字符串
定义这个字符串
android标准键值
android键值上报
按键事件处理
1.1.1 协议相关
涉及模块
device/hisilicon/bigfish/sdk/source/msp/drv/ir/ir_s2
device/hisilicon/bigfish ...
AndroidTv遥控模拟器app
前言
不要让时代的悲哀成为你的悲哀。
AndroidTv遥控模拟器app 由于公司是做机顶盒开发的,经常需要定制客户的遥控功能,遥控的系统码那么多,又不可能全部都购买一个遥控器,或者让客户邮寄过来进行配置(主要是验证遥控码值的功能),由于自己刚开始配不熟悉,有时候还因为修改了Key值,导致经常配错,又懒得去找遥控验证(实在不好找),想到手机也有红外功能,能不能用手机来模拟波形,实现模拟遥控发射的波形,来检测自己的遥控是否正确,正好当时也在研究AndroidTV系统源码中如何适配SONY的遥控器,所以就开发了这个app。这里简单记录一下,软件是年初的时候做的。
目前所支持的协议就三种,NEC,SONY,SAMSUNG。下面先简单介绍一下这三种协议以及波形(当时示波器自己倒是全部捕捉过,更换了电脑系统,没及时记录)。
1.NEC协议
参考文章
NEC红外传输协议详解(含代码)
红外协议 IR NEC 协议深度解析-简单易懂协议详解
NEC协议是现在比较常用的协议,也是最简单的协议。红外接受管有3个脚,一 ...
Android第三方网络框架封装-Java
Android第三方网络框架封装-Java
参考文章/博主
苏火火
Android进阶: 详解OkHttp+Retrofit+Rxjava实现网络请求
RxJava2+Retrofit2+OkHttp3的基础、封装和项目中的使用
本文中的所有内容大部分来源于网络资料,如有侵权请联系本人修改或删除,请大家多多支持原创!非常感谢!
1. 概述 在Android开发中,网络请求是必不可少的一环。最近做了一个需求,类似于应用宝的功能,需要从服务器获取数据,然后展示到界面上。并下载apk文件,实现静默安装。本篇主要介绍自己是如何使用Rxjava、Retrofit、Okhttp等框架,实现网络请求和下载apk的功能。
1.1 OKHttp OkHttp是一个用于处理HTTP请求的开源Java库,由Square公司开发。对于网络框架,更多的人会想到volley,volley是Android系统自带的网络请求框架。但是volle在Android 5.0之后被Google抛弃了,所以OkHttp逐渐成为Android开发 ...
AndroidTv部分页面按键音无效
Android Tv 部分页面按键音无效,dispatchKeyEvent分发被拦截 开始阅读之前,可以简单了解一下这些大佬的文章。
c枫_撸码的日子
Android 按键处理一 (基础知识)
Android 按键处理二 (按键流程之内核层篇)
Android 按键处理三 (按键流程之framework)
空杯的境界
Android 按键事件(KeyEvent)的分发机制
小羊子说
Android TV中按键事件和焦点处理总结
圆周率X
Android dispatchKeyEvent事件分发详解,简单易懂
问题描述 接入喇叭,进入应用,突然发现一些页面有系统调用的按键提示音,而有些页面则没有。(最终发现是使用了Scrollview出的bug)
问题分析 既然按键声音没有发出,那首先需要了解一下按键声音是怎么发出的。当用户注册了clickListener,则调用发出playSoundEffect()和响应用户写好的onClick()方法。首先排除系统设置声音无效。可以使用adb命令 adb ...