Android程序员
文章平均质量分 88
Misdirection_XG
与代码为伴
展开
-
优化使用kotlin开发Android app的编译速度
优化使用kotlin开发Android app的编译速度原创 2023-03-13 14:19:51 · 1095 阅读 · 0 评论 -
这么详细的AndroidService生命周期解析你确定不看吗
这么详细的AndroidService生命周期解析你确定不看吗原创 2023-03-06 17:20:20 · 2041 阅读 · 0 评论 -
沙特赢了阿根廷,Android程序员们如何稳步立“足”?
就在这两天,沙特VS阿根廷2:1惊现大冷门,日本VS德国2:1局势逆转,不少网友表示大变天了,而国足也在被反复鞭尸,大家都在强烈要求国足队伍能力居上。此前,新华社发文直指国足原创 2022-11-24 11:34:36 · 127 阅读 · 0 评论 -
实战:去除未加固 Android App强制升级提醒
如果想要成为架构师或想突破20~30K薪资范畴,那就不要局限在编码,业务,要会选型、扩展,提升编程思维。此外,良好的职业规划也很重要,学习的习惯很重要,但是最重要的还是要能持之以恒,任何不能坚持落实的计划都是空谈。如果你没有方向,这里给大家分享一套由阿里高级架构师编写的《Android八大模块进阶笔记》,帮大家将杂乱、零散、碎片化的知识进行体系化的整理,让大家系统而高效地掌握Android开发的各个知识点。原创 2022-11-22 17:31:20 · 6574 阅读 · 1 评论 -
2022最新Android面试题解题思路,带你迎合面试官心中的高标准
一家公司在招聘前,首先就已经有了自己的人才理念,知道自己想要什么样的人才。,今年的行情下,华为的情况也不是很好,就像任正非说的:让寒气传给每一个人。不过相对其他公司,华为开出的条件还是很不错的,这也是成千上万的人在等华为开奖的原因了。作为靠技术而活的程序员,如果没有一个好的技术,拿什么和“千军万马”去竞争呢?秋招进行到这个阶段了,还在招人面试的Android岗位真的很少了,因此。在众多的面试流程里,,不管是笔试还是面试都是如此,机会只留给有准备的人,所以大家一定不能忽视能力这块。原创 2022-11-18 18:08:25 · 95 阅读 · 0 评论 -
Android OkHttp拦截器
OkHttp可以说是Android开发中最常见的网络请求框架,OkHttp使用方便,扩展性强,功能强大,OKHttp源码与原理也是面试中的常客。但是OKHttp的源码内容非常多,源码千头万绪,用只需要一行设计却极其复杂。首先来看一个最简单的Http请求是如何发送的。这段代码看起来比较简单,OkHttp请求过程中最少只需要接触OkHttpClient、Request、Call、 Response,但是框架内部会进行大量的逻辑处理。所有网络请求的逻辑大部分集中在拦截器中,但是在进入拦截器之前还需要依靠分发原创 2022-11-16 18:01:40 · 1065 阅读 · 0 评论 -
2022最新字节、大疆、滴滴Android面试题,告诉你社招如何准备
作为一名有着将近4年Android开发经验的程序员来说,在今年这个环境下还是选择了裸辞。一方面是对自己目前所在部门的发展前景表示担忧,按照以往这家公司的脾性,软件赚不了太多的钱就会被砍掉,还不如另寻去路。另一方面是对自身的技术水平还是比较自信的,因为平时会花时间折腾些新的工具,不至于换家公司就落伍的那种,然后也有去做自己的应用程序,在自己的小圈子里也推广开了,有了大几百的注册用户,对我已经很满足了。在这三次的面试经历里,我发现社招对基础这块也不会忽视,但会要求你对这块有更深一点的认识,如果还是简单按部就班原创 2022-11-14 17:13:32 · 998 阅读 · 0 评论 -
如何在Android中避免创建不必要的对象
在编程开发中,内存的占用是我们经常要面对的现实,通常的内存调优的方向就是尽量减少内存的占用。这其中避免创建不必要的对象是一项重要的方面。Android设备不像PC那样有着足够大的内存,而且单个App占用的内存实际上是比较小的。所以避免创建不必要的对象对于Android开发尤为重要。本文会介绍一些常见的避免创建对象的场景和方法,其中有些属于微优化,有的属于编码技巧,当然也有确实能够起到显著效果的方法。原创 2022-11-09 22:32:57 · 107 阅读 · 0 评论 -
系统剖析Android中的内存泄漏
作为Android开发人员,我们或多或少都听说过内存泄漏。那么何为内存泄漏,Android中的内存泄漏又是什么样子的呢,本文将简单概括的进行一些总结。如果程序发生了内存泄露,则会带来如下的问题:应用可用的内存减少,增加了堆内存的压力;降低了应用的性能,比如会触犯更频繁的GC;严重的时候可能会导致内存溢出错误,即OOM Error。在正式介绍内存泄露之前,我们有必要介绍一些必要的预备知识。原创 2022-11-07 20:54:02 · 288 阅读 · 0 评论 -
你会kotlin吗?找工作时才知道面试官喜欢这么问
为什么要学kotlin,Java学得好好的它不香吗?的确,如果是在前几年,我不会给大家推荐kotlin,甚至我也没有去了解过。但是在了解了kotlin后,我有点感兴趣了,但还没到想去学的地步。直到年初找工作的时候,我很想去的那家公司,Android开发工程师岗位明确表示要会kotlin基础,看来只能认真去学习kotlin了。我在招聘网站上搜索,结果发现很多岗位都表示要会kotlin,就连腾讯在某个Android开发工程师岗位中,也把kotlin提到了和Java同等位置来看待。原创 2022-11-06 23:44:34 · 249 阅读 · 0 评论 -
2023秋招Android开发面试小能手就是我了吧
临近毕业,我们都在忙着秋招找工作了,同学都转向了java前后端,而我仍坚定的选择Android,原因很简单。我记得大学开了一门Android开发课程,我真的很喜欢那个老师,他让我对Android产生的很大的兴趣,记得我问过老师。他说近年来Android开发有了很多的新语言和新工具,不可能什么都讲到,这些只能靠你们自己去学习了,我这门课只是讲的Android本身,因为有一点要明白,,这样学什么就都轻松了。我觉得老师说的很有道理。不过在找工作时,我也经常听到安卓凉了,学它没有意义这样的话。原创 2022-11-04 22:29:47 · 96 阅读 · 0 评论 -
Android面试真经:Android百题,道道是重点
我已经工作两年了,前段时间部门认识的小学妹找到我,问我Android面试怎么准备,她觉得好难,有Android岗位的本身就不算多,而且Android涵盖的范围还很大,已经面了几个,有一部分都在问源码,自己这方面又很薄弱,明明自己花了两个月去自学Android,为什么还是觉得自己很多都答不上来。我很快就定位到了她的主要原因,对Android的整体思路不清晰,Android知识的运用不够灵活,想要在一个多月的时间去自学Android,效果怎么样只有自己才清楚。我带她把Android各版块可能问到的内容都顺了一遍原创 2022-11-03 22:32:59 · 92 阅读 · 0 评论 -
Android实现倒计时的几种方案
这样的线程并不是我们想要的,我们通常并不会直接new Thread 来进行一些逻辑操作,比如我们可能使用RxJava框架,通过操作符的方式来进行倒计时。以上是Android的倒计时方案,其实Java的Api也是支持倒计时实现的,比如 Timer 配合 TimerTask 就可以实现简单的倒计时。无需onDestory中销毁资源,如果想自由手动的控制倒计时,我们在start的高阶函数中接收父协程的上下文对象即可自动控制。关于倒计时的实现方式,大家可能有不同的做法,这里做一下总结看看你使用的是哪一种呢?原创 2022-11-02 22:13:00 · 9498 阅读 · 3 评论 -
在大厂做Android开发的应届毕业生们现在怎么样了?
在拿到offer时,可以先看看避雷贴,有的公司在试用期的时候会卡你,如果你适应不了高强度的工作就会主动劝退你。不过,我们仍然需要掌握Android学习的方法论,在实际工作项目中总结所遇到的问题,提高自己的应变能力和技术水平。这里给大家分享两种方法:第一种方式是。也就是主动向身边的同事组长学习,但是需要注意:一定要自己先积极的去思考问题,如果从一开始就询问的话,自己不能很好的消化吸收。第二种方式是。原创 2022-10-31 22:46:27 · 150 阅读 · 0 评论 -
回收视图如何在内部工作?
回收视图是一个视图组,它填充在视图持有者的帮助下提供的数据集合的列表,并将其绘制到屏幕上的用户。原创 2022-09-28 10:24:27 · 96 阅读 · 0 评论 -
通过 Github 工作流的 Android 的 CI/CD 管道
持续集成/持续交付自动化构建操作以弥合开发和运营之间的差距有时需要向客户或其他团队成员(例如 QA 团队)提供 Android APK。创建 APK,然后您上传一些云服务以下载其他云服务。您仅提供 APK 的计划似乎是一项漫长的任务。如果它自动发生不是很好吗?以下是创建管道的方法,当您的代码推送到您的分支时,GitHub 会在该管道中构建 APK。...原创 2022-08-19 09:32:32 · 581 阅读 · 0 评论 -
APP 加固添加签名后无法安装
使用腾讯云加固,下载后再次签名,签名成功之后的 apk 在华为鸿蒙、Android8 系统可以正常解析安装,在Android11 解析安装包失败使用 工具进行对齐,再用 重新签名就行了 和 都由Google官方提供,安装 环境的时候就装好了,使用时需要先配置环境变量, 和 在 控制面板->系统和安全->系统->高级系统设置->高级->环境变量->系统变量path签名文件 keystore 和 apk 的目录下执行命令对齐命令验证对齐对齐成功,这时apk安装包直接安装会提示无效或不兼容个人原创 2022-06-17 16:33:02 · 1253 阅读 · 0 评论 -
Android模版代码插件配置
在项目中,我们总会有一些框架内的模版代码需要反复创建,耗时且低效,怎么忍受的了,这些反复搬来搬去的东西所费的时间用来摸摸鱼,不香?Android Studio 4.1及以后的各动物版本,对模版代码的支持是以插件的形式来处理 通过对插件的基础配置以及项目模版代码的配置,最终以jar的形式安装到Android Studio的本地插件中,以此来创建模版代码(案例:mvvm_template)生成的MVVM代码,具体跟各自框架实现有关项目地址: mvvm_templateintellij-platform-plug原创 2022-06-14 21:40:34 · 343 阅读 · 0 评论 -
Android WebView支持下载blob协议文件
此方法只适合下载图片等比较小的文件,文件过大会导致内存溢出崩溃android 原生是不支持blob协议的,但是前端支持,可以让前端把文件转换为base64格式的文件传递给我们,当然我们自己也可以实现,实现代码如下:webview配置下载的文件名及格式需要自己判断,目前这个方法只能下载还不能判断格式及文件名要想成为架构师,那就不要局限在编码,业务,要会选型、扩展,提升编程思维。此外,良好的职业规划也很重要,学习的习惯很重要,但是最重要的还是要能持之以恒,任何不能坚持落实的计划都是空谈。如果你没有方向,这原创 2022-06-10 21:26:33 · 3123 阅读 · 3 评论 -
Android 使用maven publish插件发布产物(aar)全过程实践
平时开发中会把一些独立的功能模块抽取出来作为sdk,既方便业务接入,又能让其他业务线快速复用。那么我们就需要将sdk打包上传到maven仓库,让业务侧依赖即可。在上传产物到maven仓库之前,我们的知道产物到底是什么。Android Gradle插件根据项目gradle中应用不同的插件类型在编译组装后会生成不同的产物:Android项目的主工程app的gradle配置文件依赖:因此,在通过编译命令 或后,就会在build/outputs/apk文件下生成产物:如图,apk就是产物(构件)。如果是海外市场,原创 2022-06-08 21:48:45 · 4708 阅读 · 0 评论 -
Android 中 Handler的使用和源码详细分析
在Android中Android系统为我们封装了一套多线程间消息通信的机制—handle机制,主要用来多线程间的消息传递、用来更新UI操作。在说handle的实现机制之前,首先先了解几个基本概念:(1) 创建Handler 发送消息和重写handleMessage处理消息,采用内部静态类的方式去定义Handle 是因为非静态内部类默认持有外部类的引用,Activity销毁的时候容易引起内存泄漏,但是使用静态类的,handle中需要一个activity的引用,所有采用弱引用的方式去持有外部Activity的引原创 2022-06-06 21:39:40 · 523 阅读 · 0 评论 -
Android11 车载 Framework PBAP同步电话簿如何添加姓名全拼和首字母的需求
PBAP同步电话簿功能是这里只是大概介绍一下流程。详细的过程这里就不详细讲解了数据库添加全拼和首字母这个需求,是在ContactsProvider这个app中修改 ContactsProvider保存联系人的App 好的 首先我们下载一下联系人的数据库 用如下的方法打开数据库经过我长时间的分析,数据库中view_data视图中,sort_key字段,如果联系人名字是英文是有值的(值为英文名称),但是中文就没有值, phonebook_label也是英文就是首字母,中文同样没有值,这样我们确定了sort_ke原创 2022-06-01 22:04:29 · 1034 阅读 · 1 评论 -
Android Native 异常捕获库
现状发生native异常时,安卓系统会将native异常信息输出到logcat中,但是java层无法感知到native异常的发生,进而无法获取这些异常信息并上报到业务的异常监控系统。业务部门可以快速实现java层的异常监控系统(java层全局异常捕获的实现很简单),又或者业务部门已经实现了java层的异常监控系统,但没有覆盖到native层的异常捕获。安卓还可以接入Breakpad,其导出的minidump文件不仅体积小信息还全,但有两个问题:1.和现状第1点的问题相同。2.:需要拉取mini原创 2022-05-30 21:29:09 · 879 阅读 · 0 评论 -
Android Dex文件详解
前言相信大家都熟悉dex文件,把一个apk给解压缩,就会得到一堆dex文件,但是这些dex文件是怎么来的,又有什么用,为什么这样设计,有进行思考过吗俗话说知其然,知其所以然,本篇文章开始探究一下这些底层实现细节。正文不同的虚拟机JVMJVM是Java Virtual Machine的简称,即Java虚拟机,它本质是一层软件抽象,在这之上才可以运行Java程序。Java文件经过编译后会生成JVM字节码,和C语言编译后生成的汇编语言不同,C编译成的汇编语言可以直接在硬件上跑,但是Java编译生成的字原创 2022-05-27 17:15:59 · 7148 阅读 · 0 评论 -
Android Activity的创建流程(Android-10)
前言本篇笔记从最基础的startActivity(Intent)看一下Activity的启动流程。同时由于Launcher的启动后续和这里基本类似,就记录在一起。客户端发送请求startActivity发送启动请求的流程本质上就是:向ActivityManagerService发送启动请求。由于发送端基本是在当前用户App进程或者Launcher进程(从桌面启动新的App)。除了SystemServer启动Launcher外,都需要借助AIDL发送请求。客户端请求流程startActivity方法原创 2022-05-26 17:18:48 · 904 阅读 · 0 评论 -
Activity的生命周期和启动模式详解
1.Activity生命周期正常情况:(1) onCreate:表示 Activty 正在被创建,这是 Activity 生命周期的第一个方法,可以做一些初始化的工作,比如:加载布局,绑定控件,初始化数据等等。(2) onRestart:表示 Activity 正在重新启动,通常由 Activty 由不可见变为可见时被调用。触发场景:按 Home 键进入桌面,或者启动一个新的 Activity,这时当前 Activity 被暂停,然后又回到了该 Activity ,此时会触发 onRest原创 2022-05-24 17:04:30 · 546 阅读 · 0 评论 -
【代码设计】链表结构解决多流程校验
目的使用合理的代码设计,解决业务场景的中的实际问题。背景介绍在实际的业务场景中,用户的一个操作行为,是否允许真正被执行,往往会涉及到多流程的校验,一旦有条件不满足将会被中止。以下面流程图为例: 用户点击了打赏按钮,会进行是否有网络检查,没有网络,会有网络连接弹框,等待用户连接结果(涉及异步回调),如果没有连接,不继续下面流程直接结束;如果连接了,会进行是否登录判断,没有登录,则调用引导登录(涉及异步回调),等待登录结果,如果失败,则不继续下面的流程,成功则进行是否是成人账号判断(涉及异步回调),不是原创 2022-05-20 17:29:44 · 146 阅读 · 0 评论 -
「Android实用脚本」 统计项目中相同名称的重复资源大小
背景今天工作中遇到了一个问题,我想统计一下项目中的所有相同文件名的图片的总大小,本想着手动计算,但是看了看庞大的图片数量,我放弃了,于是开始了人生中的第一个实用脚本的编写.使用方法将下边源码复制到根路径下的build.gradle中task calculateSize() { // 替换成要统计大小的图片名称 def name = "图片名字" def fileSize = 0 def dir = rootDir.path println "------s原创 2022-05-18 17:02:10 · 143 阅读 · 0 评论 -
Android设计模式六大原则之迪米特原则
迪米特原则又被称为 最少知识原则,意思就是说呢,一个对象应该对其他对象有最少的了解。我们知道,一个类如果太依赖另一个类,那么他们之间耦合度就会很大,当一个类发生改变时,对另一个类产生的影响也会很大的。迪米特法则还有一个更简单的定义:只与直接的朋友通信迪米特原则遵循编程原则 :高内聚,低耦合。 只有使各个模块之间的耦合尽量的低,才能提高代码的复用率。好了,定义和规则我们也都知道了,那接下来我们就场景配合代码示例来讲讲怎么运用迪米特原则。在学校里,有校长,班级(班主任),学生等几种角色,校长想要了解某个原创 2022-05-16 17:52:32 · 134 阅读 · 0 评论