
Android
文章平均质量分 90
AI大模型.
取代你的不是AI,而是会使用AI的人 —— 埃隆·马斯克
展开
-
腾讯微信团队Android进程保活技术终极揭mi,速看
前言众所周知,日活率是一款App的核心绩效指标,日活量不仅反应了应用的受欢迎程度,同时反应了产品的变现能力,进而直接影响盈利能力和企业估值。为了抢占市场,谁都不会放过任何一个可以提高应用日活的方法,所以App进程保活都是各大厂商,特别是头部应用开发商永恒的追求,毕竟一旦 App 进程死亡,那就再也无法在用户的手机上开展任何业务,所有的商业模型在用户侧都没有立足之地。Android中的进程保活分为两个方面:提高进程的优先级,减少被系统杀死的可能性在进程已经被杀死的情况下,通过一些手段来重新启动应用原创 2021-10-21 15:51:30 · 508 阅读 · 0 评论 -
首发,谷歌官方分享:基于Android Studio介绍的《Android零基础入门教材》,限时开放下载
我仍记得几年前刚开始进入Android开发这个广阔而又神秘的世界时,手足无措的样子。那时,要找到好的教程真的很难,搜索谷歌,阅读各种鱼龙混杂的文章,上StackOverflow查找答案是我搜集Android知识的唯一途径。但是随着时间的推移,我逐渐总结出了可以找到有用资源的地方,从中不断收集知识,提高自己的技术。为了帮助像我这样的开发者,今天我要分享给大家的是:基于Android Studio介绍的《Android零基础入门教材》。如果想使用Android Studio开发第一个安卓app,那么这是一篇原创 2021-10-19 14:14:01 · 351 阅读 · 0 评论 -
已献出膝盖,阿里官方全新开源Android核心源码学习笔记,限时免费分享
为什么一定要阅读源码?只要是程序员,不管是Java还是Android,如果不去阅读源码,只看API文档,那就只是浮于表象,这对我们的知识体系的建立和完备以及实战技术的提升都是不利的。源码中我们可以学到很多东西,学习别人高效的代码书写、学习别人对设计模式的熟练使用、学习别人对整个架构的布局,等等。如果你还能找出其中的不足,那么恭喜你,你要飞升了!会使用固然重要,但知道为什么这么使用同样重要。从模仿中学习,从模仿中创新。而且现在Android开发越来越内卷,面试动不动就问底层原理。有没有读过源码也可以很大原创 2021-10-18 11:19:02 · 184 阅读 · 0 评论 -
谷歌官方推荐《Android开发入门精编》,极致经典,堪称Android入门教程的天花板
我仍记得2015年我决定做安卓开发的那天,这是我一生中做出的最好决定之一。到现在已经接近7年,最初的时候,并没有人告诉我如何做才是正确的。我犯了很多错误,浪费了很多时间。两年之后,我进入谷歌,我有机会和一个真正有才而且经验丰富的谷歌大佬一起工作,他指导我,教我正确的做事方式。这期间我学到了很多东西,学会了该做什么不该做什么。他最近开源了一本《Android开发入门精编》,总结了他自己做Android开发以来的学习进阶路线和相关的学习资源,非常适合零基础入门的同学,希望大家在学习的时候能够节省时间。纯干货原创 2021-10-13 14:35:19 · 583 阅读 · 0 评论 -
真给力,字节跳动年度首发《音视频开发进阶指南》限时领取,理论与实战齐飞
随着移动网络速度越来越快、质量越来越高,音视频技术已经在各种应用场景下全面开花,语音通话、视频通话、视频会议、远程白板、远程监控等等。音视频技术的开发也越来越受到重视,但是由于音视频开发涉及知识面比较广,入门门槛相对较高,让许许多多开发者望而生畏。虽然网上有很多的博文总结了实时音视频技术的学习路线,但是相关的知识都相对独立,有讲“音视频解码相关”的、有讲“OpenGL相关”的、也有讲“FFmpeg相关的”、还有讲“RTP/RTCP、RTMP、HLS、QUIC等通信相关的”,但是对于新手来说,把所有的知识原创 2021-10-12 11:46:09 · 356 阅读 · 0 评论 -
还不知道Kotlin与Java的异同?看完这篇彻底明白了
在这篇文章中呢,我将为大家分享Kotlin与Java上的主要异同,希望能够帮助到各位小伙伴利用现有的Java知识快速上手Kotlin开发。相关视频资料:Kotlin协程从实战到原理Koltin语言核心点总结和实践打印日志JavaSystem.out.print("hello world");System.out.println("hello world");Kotlinprint("hello world")println("hello world")定义变量与常量常.原创 2021-10-09 14:31:05 · 917 阅读 · 1 评论 -
看完227篇技术文,总结出一份 Flutter 入门教程
本文致力于整理 Flutter 的入门的文章。作为自己学习 Flutter 的学习笔记。同时希望这篇文章能帮助小伙伴入门 Flutter 。Flutter 简介如果你第一次接触 Flutter ,你应该从简介开始,在简介中你可以了解到 Flutter 是什么,有哪些优点。 Flutter 和其他的跨平台框架的差异……。总之,它能更好的带你初步了解Flutter。为什么原生应用开发者需要关注 Flutter如果你是 iOS、Android 的原生开发者,那你应该看一下这篇文章,这篇文章清晰的说明了为什原创 2021-10-08 22:15:04 · 1807 阅读 · 0 评论 -
360团队封神之作《安卓App逆向与安全防护学习手册》,首次开源分享,下载量破10W+
随着移动互联网的兴起,“APP”成了99%的互联网企业主要运营的产品,知名的例如“支付宝”、“美团”、“滴滴”、“抖音”等。用户基数的不断变大,安全性也经历着巨大的挑战。app越来越多,也离不开我们的生活,而安卓逆向也是近几年才兴起的一个行业,市场饱和度不高,发展前景广阔。随着app的增加安全是一个很大问题,想要解决安全问题就得用到逆向知识,由此逆向岗位会随着app得的增加会越来越多。就我自己从事安卓逆向这几年的经验来说,对没有编程基础的朋友如何学习安卓逆向最好制定以下学习路线:一. 安卓逆向基础(原创 2021-10-06 16:51:40 · 1093 阅读 · 0 评论 -
90%的开发者都不知道的 Kotlin技巧以及原理解析(三)
Google 引入 Kotlin 的目的就是为了让 Android 开发更加方便,自从官宣 Kotlin 成为了 Android 开发的首选语言之后,已经有越来越多的团队,在项目使用 Kotlin。众所周知 xml 十分耗时,因此在 Android 10.0 上新增加 tryInflatePrecompiled 方法,这是一个在编译期运行的一个优化,因为布局文件越复杂 XmlPullParser 解析 XML 越耗时, tryInflatePrecompiled 方法根据 XML 预编译生成 compil原创 2021-09-30 14:57:24 · 310 阅读 · 0 评论 -
90%的开发者都不知道的 Kotlin技巧以及原理解析(二)
文章中没有奇淫技巧,都是一些在实际开发中常用,但很容易被我们忽略的一些常见问题,源于平时的总结,这篇文章主要对这些常见问题进行分析。之前分享过一篇文章 为数不多的人知道的 Kotlin 技巧以及 原理解析 主要分析了一些让人傻傻分不清楚的操作符的原理。这篇文章主要分析一些常见问题的解决方案,如果使用不当会对 性能 和 内存 造成的那些影响以及如何规避这些问题,文章中涉及的案例来自 Kotlin 官方、Stackoverflow、Medium 等等网站,都是平时看到,然后进行汇总和分析。通过这篇文章.原创 2021-09-29 14:01:56 · 570 阅读 · 0 评论 -
90%的开发者都不知道的 Kotlin技巧以及原理解析(一)
Google 引入 Kotlin 的目的就是为了让 Android 开发更加方便,自从官宣 Kotlin 成为了 Android 开发的首选语言之后,已经有越来越多的人开始使用 Kotlin。结合着 Kotlin 的高级函数的特性可以让代码可读性更强,更加简洁,但是呢简洁的背后是有代价的,使用不当对性能可能会有损耗,这块往往很容易被我们忽略,这就需要我们去研究 kotlin 语法糖背后的魔法,当我们在开发的时候,选择合适的语法糖,尽量避免这些错误。通过这篇文章你将学习到以下内容,文中会给出相应的答案原创 2021-09-28 15:43:20 · 485 阅读 · 0 评论 -
收到字节月薪35k Offer,揭mi面试流程及考点
前段时间,有个朋友又出去面试了,这次他面试目标比较清晰,面的都是业务量大、业务比较核心的部门。前前后后去了不少公司,几家大厂里,他说给他印象最深的是字节。3轮技术面 + 1 轮 HR 面,他最终拿到了 35k*15薪 的 Offer。主要考察对应⽤技术和底层原理的掌握,以及对过往项目的业务理解。之所以令他印象深刻,是因为每轮都聊了一个半小时以上,确实让他受益匪浅。一面1.算法题:两个栈实现队列2.算法题:输入一个数组,想一种方法让这个数组尽可能的乱序,保证功能能实现的情况下时间复杂度和空间复杂度原创 2021-06-07 15:04:13 · 807 阅读 · 12 评论 -
心酸,30岁深漂失业3个月,从巅峰跌落谷底,大龄Android开发必须要懂的事
2021年3月,我的前同事,在我们群里说他准备回老家了,问我们有没有人可以暂时收养他的猫。——他说,这周末就要离开深圳了。他失业了、3个多月没收入,还要交着房租,过年来之后找了快一个月的工作也没有合适的。不过他还算乐观,说刚好可以回家陪陪父母…30多岁的他,来深圳7,8年了,工作一直不愠不火,间间断断谈过几场恋爱,父母劝他回家,他说,想在深圳再闯几年。这次回家,我们问他,是不是会再回来?他说,还不知道。只是在车站的时候才发现,原来每天离开这个城市的有这么多人。想要扎根,就要给自己增加份量.原创 2021-05-12 21:59:26 · 1947 阅读 · 12 评论 -
身边好几个技术一般的程序员都面上了,阿里P7门槛降低?
经常在网上的论坛里看到讨论程序员的级别,尤其在跳槽类的信息里可以看到对标阿里P7,百度T6,腾讯3.1等字眼,似乎大厂的级别俨然可以成为业内的通用货币,类似于高考分数一样,哪一档就对应着什么样的待遇。有人说现在的程序员级别也开始浮夸起来了,以前觉得从刚毕业开始算初级软件工程师,到中级软件工程师,高级软件工程师,要熬上三五年乃至更高的时间。而现在接到同行的名片,往往高级开发经理、算法专家、首席科学家等层出不穷。近日一位网友吐槽几个技术不行的同事都去面试了阿里的P7岗位,且都成功拿到了offer,怀疑是不.原创 2021-05-11 22:09:11 · 7768 阅读 · 43 评论 -
史上最详Android版kotlin协程入门进阶实战(四)
kotlin协程在Android中的基础应用通过前面的三个章节,现在我们已经了解了kotlin协程的基本使用和相关基础知识点。如:协程的基础使用方式和基本原理。CoroutineContext:协程上下文中包含的Element以及下上文的作用,传递。CoroutineDispatcher:协程调度器的使用CoroutineStart:协程启动模式在不同模式下的区别CoroutineScope:协程作用域的分类,以及不同作用域下的异常处理。挂起函数以及suspend关键字的作用,以及Con.原创 2021-05-07 22:15:19 · 762 阅读 · 1 评论 -
史上最详Android版kotlin协程入门进阶实战(三)
kotlin协程的异常处理在上一篇中我们提到这节将会讲解协程的异常处理,但是笔者在写这篇文章的时候遇到了些问题,主要是讲解的深度怎么去把控,因为要处理异常,首先得知道异常是如何产生,那么必然就涉及到协程创建->启动->执行->调度->恢复->完成(取消)流程。这其中每一步都能罗列出一堆需要讲解东西,所以笔者最终决定,我们在这章节中只查看关键点位置,其中涉及到的一些跳出关键点的位置,我们只做一个基本提点,不做延伸。当然基于前两篇文章的反馈,有读者提到文章文字和代码信息太多.原创 2021-05-06 22:17:34 · 900 阅读 · 2 评论 -
史上最详Android版kotlin协程入门进阶实战(二)
kotlin协程的关键知识点上一本章节末尾我们提到,将在本章节中对以下知识点做初步讲解,包含上文提到的launch和async函数中的3个参数作用。清单如下:协程调度器CoroutineDispatcher协程下上文CoroutineContext作用协程启动模式CoroutineStart协程作用域CoroutineScope挂起函数以及suspend关键字的作用当然还有一些其他的知识点也是很重要的,比如:CoroutineExceptionHandler、Continuation、.原创 2021-04-30 21:04:24 · 445 阅读 · 2 评论 -
史上最详Android版kotlin协程入门进阶实战(一)
前言笔者在写这篇文章的时候纠结了很久,不知道该以怎样的形式去讲解kotlin协程知识。笔者以前在学习的时候,也白嫖过各种各样的知识,看过很多文章,大概能够总结为三种::讲的太浅,三两句话就带过去了,看完以后就只剩下索然无味讲的太深,从头到尾都是晕乎乎的,最后总结就是三句话:我在哪,我在干嘛,手机真好玩!内容适中,但是用到实际开发中时开始各种突然的翻车,然后挠头:怎么结果跟我想象的不一样啊!知识的学习过程就像谈恋爱一样,讲究循序渐进。上来就想深入了解的话,那大概率是很容易翻车的..原创 2021-04-29 17:35:24 · 818 阅读 · 1 评论 -
Android jetpack zui佳总结和实践
背景在Android开发中经常面临的问题:(1)在应用程序(Activity、Fragment)的生命周期管理困难,尤其是Fragment的跳转带来的生命周期管理问题。 (2)在Activity需要重新创建的时候,界面控制器(View层)中存储的数据丢失,需要重新初始化,影响用户体验。 (3)Android的异步操作(DB,NetWork)时,在界面控制器(View层)被销毁后,界面控制器需要结束和任务的订阅关系,避免内存泄漏和不必要的信息回调。(4)Android的后台服务和任务愈发困难。主要是原创 2021-04-28 17:28:30 · 2669 阅读 · 13 评论 -
记一次腾讯社招Android面试(已拿到offer入职)
前段时间收到了腾讯的Offer,做的准备工作也是刷题和不断的充实自己的技术,其实目前腾讯的面试题并不是现在流传的那样,不过还算好顺利拿到了offer,下面来跟大家分享一下我遇到的面试题,主要是技术面试问题。腾讯一面1.mmap + native 日志优化?2.广播和 EventBus 的区别?3.常用设计模式你了解哪些?4.跨进程通信有哪些?5.简单讲讲 binder 驱动吧?6.跨进程传递大内存数据如何做?7.说说 ConcurrentHashMap 的实现原理说下,初始化大小是多少?8原创 2021-04-27 18:15:49 · 1376 阅读 · 6 评论 -
作为一名干了十年Android开发的过来人,给后辈的一点建议
本人普通二本毕业去的一家小公司,一年后去了某知名大厂, 后来继续在大厂之间跳槽 。如今已娶妻生子 买房定居。这几年经历过面试,买房,学车,结婚,生子,职业沉淀。也算是真正领悟到了编程到底有什么意义!编程的意义这个话题留到以后再谈。每年都有无数年轻的程序员,加入软件行业。他们在学校里学过编程,但是对这个行业的现实一无所知,我今天介绍这个行业的一些实际情况。这几年自己在技术博客沉淀很多技术。其他方面也算成功,至少和同龄人和自己起点一样本科生来说,作为过来人有几点说一下:一、做一个程序员,不是码农。码农的工原创 2021-04-26 18:01:47 · 1466 阅读 · 7 评论 -
某大厂程序员自述:年龄37,年薪百万,等着被公司“干掉”
35岁,作为程序员基本就慢慢干不动了?面对这个问题,许多业内人士给出了非常中肯的三条路:第一条:创业第二条:转管理第三条:走技术大龄程序员的“求生之路”,看上去格外漫长,且充满了不确定性,前途未卜,心中怎能不忧虑?程序员,年纪越大,技术往往越退化,竞争力会逐渐变差,结果可想而知。面对中年危机,很多人没有选择,不知道自己将来能干嘛,也不知道自己想干什么。一位广东大厂程序员就曾经发私信给我描述过自己的困境与危机,年龄37岁,年薪百万,却等着被公司“干掉”。许多人或许十分好奇,为什么呢?很简.原创 2021-04-25 16:59:00 · 3833 阅读 · 11 评论 -
搞不懂为啥那么多程序员都想去字节跳动。。。直到朋友拿到字节offer,酸了
我有个朋友,他坚持刷题2个月,终于去了他梦寐以求的大厂——字节跳动,薪资涨幅非常可观,30k ×14薪,不妄他准备了整整两个月啊。下面是他分享给我技术面试题目:字节跳动一面(电话面)自我介绍+说说自己做过项目的技术核心你在项目中遇到最难得点是什么?如何解决的?Activity 到底是如何启动的?启动模式以及使用场景?Handler了解吗?Handler Looper Message 关系是什么?Messagequeue 的数据结构是什么?为什么要用这个数据结构?如何在子线程中创建 Ha原创 2021-04-23 22:00:42 · 5135 阅读 · 19 评论 -
这些Android开发核心知识点,面试前要搞清楚
作为一个资历不浅的开发,这几年我面试过不少人。发现大多数面试者,虽然看起来工作努力,但他们表现出来的能力水平,却不足以通过面试,或拿不到期望的薪资。在我看来,造成这种情况的原因,主要有这么两方面:第一,“知其然不知其所以然”。做了几年技术,开发了一些业务应用,但没有思考过这些技术选择背后的逻辑。所以,我很难定位他们日后的成长潜力,也不会放心把有一定深度的任务交给他们。第二,知识碎片化,不成系统。事实上,当面试者无法完整、清晰地描述自己所开发的系统或使用的相关技术时,面试官就会怀疑他是否具备解决复杂问题原创 2021-04-22 17:32:48 · 339 阅读 · 0 评论 -
Jetpack Compose for Desktop实现复杂的自动布局网格
效果如下:主要实现随窗口尺寸自动调整元素位置的功能,由于实际上考虑了window的尺寸(实现过程并未涉及window),在android上并不适用(虽然正常运行应该没有问题)。实现这种动态控件,思路还是很清晰的,就是用BoxWithConstraints测量待绘图区域的尺寸,根据得到的尺寸画出相应的控件。代码如下:import androidx.compose.foundation.layout.*import androidx.compose.material.Textimport andro原创 2021-04-21 18:09:36 · 1762 阅读 · 0 评论 -
Android Jetpack Compose 超快速上手指南
Compose 介绍Compose库是用响应式编程的方式对View进行构建,可以用更少更直观的代码,更强大的功能,能提高开发速度(可以参考几乎一模一样的Flutter,开发速度确实很快)。Jetpack Compose对于没有接触过声明式UI的小伙伴可能会学习曲线有点陡峭,对于已经能熟练开发Flutter应用的小伙白来说几乎没有难度。(Compose就是参考flutter的模式开发的,代码中还可以看到Flutter的相关注释)这篇文章不回去解释过多的原理与技巧,只要是让你能够快速上手开发项目。目前.原创 2021-04-20 17:50:30 · 1418 阅读 · 8 评论 -
Jetpack Compose | 声明式 UI 编程的革命
一、创建 Jetpack Compose 项目1.下载 AndroidStudio下载地址 developer.android.google.cn/studio/prev… ,这里下载的是 2020.3.1 版的AndroidStudio 。2.创建 Compose 项目AndroidStudio 中选择新建项目 New Project,你可以看到预览版的 Empty Compose Activity,选择此栏可以创建一个空的 Compose 项目。然后填写一下项目的基本信息,本项目原创 2021-04-19 17:33:34 · 574 阅读 · 0 评论 -
【从入门到放弃】android布局优化深入解析
前言Android的绘制优化其实可以分为两个部分,即布局(UI)优化和卡顿优化,而布局优化的核心问题就是要解决因布局渲染性能不佳而导致应用卡顿的问题,所以它可以认为是卡顿优化的一个子集。本文主要包括以下内容1.为什么要进行布局优化及android绘制,布局加载原理2.获取布局文件加载耗时的方法3.介绍一些布局优化的手段与方法4.为什么放弃使用这些优化方法?1.为什么要进行布局优化?为什么要进行布局优化?答案是显而易见的,如果布局嵌套过深,或者其他原因导致布局渲染性能不佳,可能会导致应用卡顿原创 2021-04-16 17:45:21 · 263 阅读 · 0 评论 -
Kotlin高阶函数与特性,让代码飞起
Google在2017年的时候就开始推广Kotlin语言作为Android开发的首选语言,现在都1202了,发现身边不少小伙伴还是全部用Java作为开发语言,对Kotlin的理解还停留在空指针判断上。我觉得有必要向他们安利一下我为什么选择Kotlin作为首选的开发语言。Kotlin对Java的优势:一、编译时判空机制Kotlin在编译时会对可能会导致空指针异常的地方进行了强制判断,帮助我们规避掉绝大多数的空指针异常。主要体现在我们在声明变量或者参数的时候就必须显示给定这个变量或参数是否可以为空。例如:原创 2021-04-15 18:02:21 · 296 阅读 · 0 评论