- 博客(33)
- 收藏
- 关注
原创 Android系统架构
Android 系统架构Android 是谷歌开发的一款基于 Linux 内核的操作系统。系统架构分为五层,从下到上依次是Linux内核层、硬件抽象层、系统运行库层、应用框架层和应用层。让我们走进Android的系统架构吧!Android大致可以分为五层从上到下依次是:应用层,应用框架层,系统运行层库,硬件抽象层(Hardware Abstraction Layer),Linux内核层。
2022-06-02 19:52:31 6072
原创 .c文件如何一步步变成.exe文件
.C文件如何一步步变成.exe文件预编译/预处理----->编译----->汇编----->链接预编译:.c文件转换成.i文件 展开头文件/宏替换/去掉注释/条件编译比如一个hello world程序(程序命名为hello.c),第一行的#命令会让预处理器读取系统头文件stdio.h的内容,并把它插入到程序文本中得到另外一个以.h为文件扩展名的新的程序,即hello.i。编译:.i转换成.s文件 将程序语言转换成汇编语言将文本文件hello.i翻译成为文本
2022-06-02 17:31:37 4026
原创 Retrofit框架源码深度剖析【Android热门框架分析第二弹】
网络请求框架Retrofit(Android中的Retrofit) 是一款强大的 Android 和 Java 网络请求库,通过简单而优雅的方式实现了对 RESTful API 的调用和数据解析。其基于注解的 API 定义、可扩展的转换器和适配器模式使得网络请求变得高效、灵活且易于维护。本文将深入探讨 Retrofit 的工作原理、核心功能如何支持同步、异步和 RxJava 方式的请求处理,并分析其与 OkHttp 的关系及优势,帮助开发者理解和利用 Retrofit 构建稳健的网络应用。
2024-07-08 00:46:41 1131 1
原创 设计模式导读:建造者模式的细腻之处与编程技巧
探索建造者模式:构建复杂对象的灵活利器。想象一下,当你需要创建一个拥有多个可选属性和配置选项的复杂对象时,是否曾感到无从下手?建造者模式就像是为这样的问题量身定制的解决方案。无论是构建数据库连接池、配置文件解析器还是具有复杂选项的游戏角色,建造者模式提供了一种清晰、灵活且可维护的方法来管理对象的构建过程。本文将带您深入探索建造者模式的工作原理和实际应用。我们将从基础概念出发,逐步引导您了解如何利用建造者模式有效地创建对象,避免构造方法参数爆炸和构造过程中的混乱。通过具体的Java示例和实际场景,您将学习
2024-06-24 00:48:16 762
原创 OkHttp框架源码深度剖析【Android热门框架分析第一弹】
OkHttp框架源码解析。OkHttp是当下Android使用最频繁的网络请求框架,由Square公司开源。Google在Android4.4以后开始将源码中的HttpURLConnection底层实现替换为OKHttp,同时现在流行的Retrofit框架底层同样是使用OKHttp的。
2024-06-22 22:42:00 1276
原创 CountDownTimer 倒计时不准确问题解决
CountDownTimer 倒计时不准确问题解决。那么我们可以采用延迟的办法来及解决这个问题,即在2900的时候对3不做处理,text的默认文案就是3,然后2900的时候,延迟1s执行,让文案在1900左右变成2,让文案在900左右的时候变成1。在网上搜到的大家遇到的问题,大多数是因为,间隔时间设置为1000ms,但是回调的时候每次都要多出几毫秒或十几毫秒,而我的设备在实际测试中,多了40ms,即每倒计时25s,就会跳过一秒的显示。也就是说
2024-04-04 19:17:38 1188
原创 热修复——紧急修复的大杀器
热修复,万字剖析!在实习中,我有幸参与了一项关键的任务,即实现应用程序的热修复功能。通过这个项目,我学习并了解了热修复技术,并且亲身体验了其在移动应用开发中的重要性和实际应用。在本文中,我将分享我在实习期间学到的关于热修复的知识和经验。我会介绍热修复的概念、原理以及在 Android 应用开发中的实际应用。同时,我还会探讨一些常用的热修复框架,关注我,让我们一起讨论我在实践中遇到的一些挑战和解决方案。
2024-04-04 18:45:40 1574
原创 快速排序【2023年最新】
快速排序这套模板的思路是这样的,随机找到一个点,可以是数组中的左边界也可以是右边界,或者是数组中任何一个元素,为了方便理解,这里将这个点设为左边界,并且叫做pivot。然后,去比较右边界和左边界的大小,先看右边界的值是否大于pivot的值,如果大于,则右边界一直往左走,当右边界的值小于pivot,则将右边界此时的值赋值给左边界。然后轮到左边界了,左边界也要比较和pivot的值的大小,如果小于pivot则一直往右走,如果大于,则将左边界的值赋值给右边界。循环这个操作,循环条件是左边界的指针大于右边界的指针。
2023-11-09 12:13:21 245
原创 单例模式详解【2023年最新】
单例模式是一种创建型设计模式,它确保一个类只有一个实例,并提供一个全局访问点来访问该实例。它的目的是限制一个类只能创建一个对象,以确保在整个应用程序中只有一个共享的实例。单例模式通常用于以下情况:当一个类只需要一个实例来协调操作时,例如数据库连接池、线程池等。当希望在整个应用程序中共享某个资源或状态时,例如配置信息、日志记录器等。当创建一个对象的成本很高,但又需要频繁地使用该对象时,可以通过单例模式来避免重复创建对象,提高性能。
2023-10-25 20:42:39 548
原创 Service生命周期详解【2023年最新】
Service是一种在后台执行长时间运行操作的组件,它没有用户界面。Service可以在后台处理耗时任务、执行网络请求、播放音乐、处理传感器数据等。服务(Service)是Android中实现程序后台运行的解决方案,它非常适合去执行那些不需要和用户交互而且还要求长期运行的任务。服务的运行不依赖于任何用户界面,即使程序被切换到后台,或者用户打开了另外一个应用程序,服务仍然能够保持正常运行。
2023-10-18 22:02:31 2106
原创 Activity生命周期详解【2023年最新】
Android生命周期详解:为了在 Activity 生命周期的各个阶段之间导航转换,Activity 类提供六个核心回调:onCreate()、onStart()、onResume()、onPause()、onStop() 和 onDestroy()。当 Activity 进入新状态时,系统会调用其中每个回调。
2023-10-17 20:40:38 97
原创 Caused by: org.gradle.api.internal.plugins.PluginApplicationException: Failed to apply plugin ‘com.a
Caused by: org.gradle.api.internal.plugins.PluginApplicationException: Failed to apply plugin 'com.android.internal.application'.android.overridePathCheck=true
2023-10-17 16:57:03 180
原创 保姆级软件著作权申请全流程(零成本+附带模版)【2024最新版】
软件著作权申请:保姆级软件著作权申请(已成功)【2024最新版--一直在更新!!!】
2023-10-08 22:31:19 23550 1380
原创 LeetCode之560:和为K的子数组
LeetCode之560:和为K的子数组题目:给你一个整数数组nums和一个整数k,请你统计并返回该数组中和为k的连续子数组的个数。子数组是数组中元素的连续非空序列。示例 1:输入:nums = [1,1,1], k = 2输出:2示例 2:输入:nums = [1,2,3], k = 3输出:2
2023-09-27 22:33:12 87
原创 Android Studio统计代码量
如何知道你写的android项目里面的程序量(即有多少行代码)可以使用Android Studio自带的一个插件实现,下面是详细的步骤说明。
2023-09-25 14:47:32 4618 1
原创 力扣每日一题 14. 最长公共前缀
编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串""。"fl"""输入不存在公共前缀。
2023-09-24 22:29:35 104
原创 Android多线程实现的几种方式
在 Android 中,多线程是指同时运行多个线程,每个线程独立执行自己的任务。Thread、Runnable、线程池等。Android 应用通常运行在主线程(也称为 UI 线程)中,负责处理用户界面的更新和事件响应。然而,有些操作,例如网络请求、耗时计算等,如果在主线程中执行,会阻塞UI响应,导致应用无响应或者卡顿。为了避免这种情况,开发者可以使用多线程来进行后台任务的处理,从而将耗时的操作放在单独的线程中执行,保持主线程的流畅性和响应性。这样用户就可以在应用执行耗时任务的同时继续与应用进行交互。
2023-09-23 18:15:00 1437 1
原创 建造者模式(Android)
构建者模式(Builder Pattern)是一种创建型设计模式,旨在通过提供一种灵活的方式来构建复杂对象。该模式将对象的构建过程与其表示分离,使得同样的构建过程可以创建不同的表示。具体来说,构建者模式使用一个独立的构建器(Builder)类来封装对象的构建过程。构建器类提供一系列方法来设置对象的属性,并最终返回构建好的对象。这种方式可以避免使用多个构造函数或过多的参数,使得对象的构建过程更加直观和易于扩展。
2023-09-18 22:13:42 464
原创 (已解决)从SharedPreference中保存并读取Bitmap数据
(已解决)从SharedPreference中保存并读取Bitmap数据
2022-07-20 12:22:35 469
原创 (已解决)INSTALL_FAILED_CONFLICTING_PROVIDER虚拟机安装失败错误
(已解决)INSTALL_FAILED_CONFLICTING_PROVIDER虚拟机安装失败错误
2022-07-19 20:12:09 1766
原创 java.lang.NullPointerException: Attempt to invoke virtual method ‘void android.widget.Button.setOnCl
(问题已成功解决)Button的空指针异常。 java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
2022-07-19 19:12:32 3001 1
空空如也
android面经或者android岗位面试相关资料
2023-09-18
关于#kotlin#的问题:Github上有没有还不错的Kotlin项目
2023-09-12
android框架的使用推荐有那些?
2023-09-09
XBanner的使用
2023-03-05
TA创建的收藏夹 TA关注的收藏夹
TA关注的人