对于android开发,实际上大部分工作都是在应用层,但为了体现"技术含量",以及"知其所以然",以便在遇到问题是不至于束手无策。因此有必要了解底层的工作机制。由于android是开源的系统,因此学习其内部的工作机制是非常容易的,目前也有一些关于android源码分析的书籍。我一直认为,应用层的开发和底层没什么太大的关系,不过有一次因为应用权限的问题,也算是对android framework层有
原标题:EMUI10.1再次更新,实锤华为安卓底层给“掏空”,流畅度相当ios自从谷歌禁止华为使用GMS以后,华为以及荣耀的手机经常会更新一些小功能,或者优化某项功能体验,但是系统的安装包往往都是很大的。很多人都猜测,华为是不是偷偷在更新安卓系统的底层,今天再去看看现在的EMUI系统的底层服务,基本都是华为的了。现在的EMUI系统基本就是套着安卓外壳的鸿蒙系统了,华为现在之所以没有直接用上鸿蒙系统
转载
2023-08-29 17:09:50
176阅读
一、引言本文,我们通过修改Android操作系统源码,在原生的Android项目中增加一个我们自定义的线程来执行相关任务,并修改init.rc,来增加启动过程中的任务。 本文中涉及到了很多android中的知识,在我之前的博文中都有讲解,本文只介绍整个流程,不会详细介绍某一块,有问题的同学可以回去看下我之前的博客。二、Android系统程序的整理框架下面我准备了一张图来反映大体框架 我们需要做以下
转载
2023-07-05 20:51:50
394阅读
作者简介罗铁锤,六年安卓踩坑经验,致力于底层平台、上层应用等多领域开发。文能静坐弹吉他,武能通宵写代码 Android应用层是不涉及 SurfaceFlinger,FrameBuffer 之类的底层框架,常用刷新视图都是在 View 的 draw 相关方法中进行标准绘制 api 操作,然后通过 View.invalidate 或者 View.requestLayout 通知系统进行视图显示的刷
转载
2023-09-10 15:56:09
6阅读
确切的说,本文是一篇读书笔记,阅读了三篇Android重构的文章: Android项目重构之路:架构篇 Android项目重构之路:界面篇 Android项目重构之路:实现篇 上图是我阅读文章的作者给出的架构层次。一共分为四层:1、界面层,负责数据显示,依赖于核心层和模型层。2、核心层,是业务逻辑处理与UI逻辑处理,依赖于接口层和模型层3、接口层,是网络请求相关,向服务器获取数据,依赖与模型层4、
转载
2023-09-10 15:55:18
119阅读
对于开发者来说,架构设计是软件研发过程中最重要的一环,所谓没有图纸,就建不了房子。在遍地 App 的互联网时代,架构设计有了一些比较成熟的模式,开发者和架构师也可以经常借鉴。但是,随着应用的不断发展,最初的架构往往面临着各种问题,比如无法满足客户的需求、无法实现应用的扩展、无法实现新的特性等等。在这种情况下,我们如何避免一些坑,尽量比较成功地实现架构的重构,是很多开发者和架构师亟需解决的问题。在这
转载
2023-11-02 10:55:29
63阅读
一、解决bug:Selenium with PhantomJS,重构SeleniumeDownloader底层浏览器驱动 0、小背景: 想爬取外网steam的数据,但是steam官网在
原创
精选
2023-06-04 17:13:03
907阅读
软件演化的类型软件演化就像生物进化一样,有些突变对物种是有益的,而有些是有害的。区分软件演化类型的关键,就是程序质量在这一过程中时提高了还是降低了。其二,就是这样的演化是源于程序构建过程中的秀海,还是维护过程中的修改。重构简介要实现软件演化基本准则,最关键的策略就是重构。重构的理由1、代码重复,重复的代码几乎是代表着最初设计里彻底分解方面的一个事物。无论何时,如果需要对某个地方进行修改,你都不得不
转载
2023-10-27 08:43:18
71阅读
重构是啥对软件内部结构的调整,在不改变软件行为的前提下,提高可理解性,降低修改成本。重构的目的:更易于理解、修改,对其外部行为几乎不造成影响。两种不同行为:添加新功能与重构添加新功能和重构,两者不能同时进行。添加新功能时只管添加新功能、重构时只管重构。为何重构简单来说重构可以帮助我们更好的改进程序的内部结构,使代码更容易理解,可以帮助修改bug,可以提高编程速度何时重构重构是因为你想做别的什么事,
转载
2023-07-21 10:50:24
80阅读
1.代码重构android:singleLine=”true”过时解决方法:使用android:maxLines=”1”代替(后来经证实,这个方法有坑,android:maxLines只能保证所有内容在只显示一行,但是任然可以换行输入)在给TextView赋值时非Stringl类型的值使用”+”进行字符串拼接例如:tvCount.setText(detail.getCount+”“)这样的代码会出
转载
2023-07-10 23:51:40
107阅读
在上次,我思考了关于结构方面的Android项目重构之路:架构篇 读后思考,那么这次,我在读了Android项目重构之路:实现篇之后,也有了新的收获由于现在所在的公司比较小,android studio是没有使用的,不过在看着那篇文章之后,对于其中的模块原理有了一个基础的了解,原本对于网上分享的一些在android studio项目中界面特效的代码我是无法一下子理解的,现在,我理解了,一边实践一边
转载
2023-06-29 21:31:49
2阅读
1、配置改变时,会导致Activity被杀死并且重新创建,那么我们要如何避免该情况的发生?第一种解决思路:设置配置文件中Activity的configChanges属性。 我们可在AndroidManifest.xml中对应的Activity中设置android:configChanges="orientation|screenSize"。再次
转载
2024-01-10 20:43:58
11阅读
我们都知道,技术是优质产品的必要条件,要满足用户不断变化的需求,必须有弹性的技术实现框架;android开发平台正是提供给开发者一个清晰且有弹性的架构,正如我们在eclipse开发环境中心建一个android开发项目时,生成的不同文件夹,如src是存放源代码的目录,res是存放资源的目录,这就是为了单纯化界面修改模式,将界面描述部分的程序代码,抽取到程序外部的xml说明文件中。简而言之,即jav
转载
2023-07-27 22:13:43
167阅读
开头在一般的互联网公司的技术人员的面试中,大概会经历3到4轮的面试,差不多2-3轮的技术面,还有1轮的HR面试,有人面试题是有关“目标”,有的关于“方法”,有的关于“算法”,有的关于“基础”。在小编看来,面试是找工作的第一道难关,原本以为面试都会问很难的问题,如果是更好的公司,可能问的问题越难。组件化1.1 组件化初衷APP版本不断的迭代,新功能的不断增加,业务也会变的越来越复杂,维护成本高。业务
转载
2024-01-04 15:32:14
18阅读
Android背景Android是基于Linux内核的开源移动端操作系统。Android操作系统最初由Andy Rubin开发,它的底层是使用C/C++实现的,而它的应用层是使用Java/Kotlin实现的。2005年8月Android被Google收购注资。2007年11月,Google以Apache开源许可证的授权方式,发布了Android的源代码。Android系统平台架构Android 系
转载
2023-07-03 09:48:44
121阅读
android体系架构安卓底层是基于Linux内核的,上层还包括硬件抽象层。然后就是应用层模块包括Native层,Android运行时环境,JAVA API框架以及系统/用户app。JAVA层通过JNI技术与native层通讯,而native通过syscall系统调用与内核层通讯Linux内核linux内核主要的任务就是进行基本的内存管理,进程管理,系统初始化等工作。硬件抽象层(HAL)硬件抽象层
转载
2023-07-13 20:12:32
1049阅读
Android的基础知识作者:黑衣侠客一、Android的系统架构Android大致可以分为四层结构:Linux内核层、系统运行库层、应用框架层和应用层。Linux内核层 Android系统是基于Linux内核的,这一层为Android设备的各种硬件提供了底层的驱动,如显示驱动、音频驱动、照相机驱动、蓝牙驱动、WiFi驱动、电源管理等。系统运行库层 这一层通过一些C/C++库来为Android系统
转载
2023-06-28 19:27:56
409阅读
重构这个话题是老生常谈的了,当项目大的,没有重构,就会导致复制粘贴的情况。保持一个良好的编码习惯和一个写文档的习惯相当重要。
什么是重构?
重构是在保证不改变外部行为的前提下,对内部结构进行改变,使之易于修改和理解。 ——————Martin Fowler
换句话说,重构就是保证我们的程序对于外部使用者来说是一致的,但是内部的代码做了优化。
为何要重构?
这个问题其实很简单,就是代码写的不好。
转载
2021-06-12 19:11:22
758阅读
## Android重构Gradle流程
在进行Android项目开发过程中,我们经常需要对Gradle进行重构来满足需求的变化和优化项目结构。本文将介绍重构Gradle的流程,并提供每一步需要执行的代码示例。
### 1. 确定重构目标
在开始重构之前,我们需要先确定重构的目标是什么,比如优化构建速度、引入新的库或插件等。
### 2. 分析当前项目结构
在进行重构之前,我们需要了解当
原创
2023-11-18 06:31:59
45阅读
前言先简单交代一下背景吧,本人毕业于某不知名985的本硕,17年毕业加入阿里,今年下半年跳槽到了头条,一直从事后端研发相关的工作。之前没有实习经历,算是两年半的工作经验吧。这两年半之间完成了一次晋升,换了一家公司,有过开心满足的时光,也有过迷茫挣扎的日子,不过还算顺利地从一只职场小菜鸟转变为了一名资深划水员。在这个过程中,总结出了一些还算实用的划水经验,有些是自己领悟到的,有些是跟别人交流学到的,
转载
2024-01-31 06:28:39
33阅读