IDEA开发配置更新
gradle 国内镜像distributionUrl=https://mirrors.cloud.tencent.com/gradle/gradle-7.2-all.zip
1234567891011121314151617181920212223242526272829-Xms8192m-Xmx8192m-XX:NewSize=4096m-XX:MaxNewSize=4096m-XX:MaxMetaspaceSize=512m-XX:ReservedCodeCacheSize=512m-XX:+UseG1GC-XX:SoftRefLRUPolicyMSPerMB=50-XX:CICompilerCount=2-XX:+HeapDumpOnOutOfMemoryError-XX:-OmitStackTraceInFastThrow-XX:+IgnoreUnrecognizedVMOptions-XX:CompileCommand=exclude,com/intellij/openapi/vfs/impl/FilePartNodeRoot,trieDescend-ea-Dsun ...
Handler通信机制
前言
喜欢就争取 得到就珍惜 错过就忘记
参考博客
Carson带你学Android-Android异步通信:手把手教你使用Handler消息传递机制(含实例讲解)
奶盖-面试被问Handler 的通信机制的背后的原理是什么?95%的人都没完全理解
Android之Handler消息机制——深入理解 Looper、Handler、Message、MessageQueue
临时抱佛脚:IdleHandler的原理分析和妙用
Handler同步屏障机制的原理和使用场景
本文中的所有内容大部分来源于网络资料,如有侵权请联系本人修改或删除,请大家多多支持原创!非常感谢!
HandlerHandler机制简介 Android的UI框架基于事件驱动,所有与界面相关的操作必须在主线程(也称为UI线程)中执行。这是由于Android的UI框架不是线程安全的,即多个线程同时操作UI可能引发各种问题,例如UI元素的状态不一致、布局错乱、甚至崩溃等。故多线程可并发操作UI组件,则出现了Handler。Handler是一套Android消息传递机制& ...
浅谈四大组件通信
Activity
一个Activity通常就是一个单独的屏幕(窗口)
Activity之间通过Intent进行通信
android应用中每一个Activity都必须要要在AndroidManifest.xml配置文件中声明,否则系统将不识别也执行该Activity。
Service
service用于在后完成用户指定的操作。service分为两种:
service(启动):当应用程序组件(如activity)调用startService()方法启动服务时,服务处于started状态。
bound(绑定):当应用程序组件调用bindService()方法绑定到读物时,服务处于bound状态
startService()和bindService()区别:
started service(启动服务) 是由其他组件调用startService()方法启动的,这导致服务的onStartCommand()方法被调用。当服务是started状态时,其生命周期与启动它的组件无关,并且可以在后台无限期运行,几遍启动服务的组件已经被销毁。因此,服务需要在完成任务后调用stopSe ...
使用官方APi获取Youtube视频资源
YoutubeAPI 快速入门本教程需要外网环境。
本教程参考一下博客:
使用Youtube Data API 抓取有趣的Youtube影片
Java解析JSON的四种方式
使用Youtube官方API获取频道及视频数据
Android中解析json数据的三种方式
申请 API Key
首先去开发者平台申请API Key,第一次登录需要简单注册一下,然后创建一个新的项目,创建完成后,点击控制台。
然后搜索 youtube api v3
接着创建并启用此API
回到控制台可以查看已启用API的密钥
开发者文档 在使用之前可以先看一下YoutubeAPI官方的开发文档,地址为:YoutubeAPI官方文档这里的文档介绍的特别详细,还可以在线测试接口,生成代码示例,非常好用。
右侧就是测试接口返回的数据,对面板中的请求参数,在文档中都可以搜索出来,并且有详细的介绍和实时生成代码示例。
数据处理本示例采用的是原生态json数据处理工具,因所需数据简单,未采用第三方解析json工具。解析简单的数据只需要记得{}中的是对象用jsonObject承接, ...
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,编译优化 ...