
Android开发
文章平均质量分 85
Android学习小分队
这个作者很懒,什么都没留下…
展开
-
Android开发面试题,啃下来就能进阿里
我们程序员本就是在工作中学习,提升自己,在从一家公司跳到另一家公司的过程中提高自己的经验,提高自己的薪酬,让自己在市场中更具竞争力。一般的程序员都是从小公司做起,再慢慢跳到大厂,在经历了大厂高强度的工作学习后,这时再选择去其他公司竞争力是完全碾压其他没去过大厂的程序员的。**今天我们就来讲讲如何才能进入大厂学习深造。**原创 2023-03-11 15:12:00 · 133 阅读 · 0 评论 -
车载Android开发,从小白到架构师只需三步
车载Android开发原创 2023-03-01 21:11:55 · 678 阅读 · 0 评论 -
[官文翻译]Flutter状态管理库Riverpod - 所有的Provider - StateProvider
为了帮助大家更好的理解flutter,我给大家准备了一份《Flutter进阶学习笔记》,相信大家能在它的帮助下快速掌握flutter的知识,有需要的朋友可以扫描下方二维码自取。《Flutter进阶学习笔记》目录第一章 为什么 Flutter 是跨平台开发的终极之选这是为什么?跨平台开发什么是FlutterFlutter特性Flutter 构建应用的工具使用 Flutter 构建的热门应用构建 Flutter 应用的成本第二章 在Windows上搭建Flutter开发环境。原创 2023-02-11 20:32:28 · 591 阅读 · 0 评论 -
有了它,再也不用怕在TextView的任意位置添加各式各样的标签了
API描述默认值说明tvt_type标签类型text-文本标签,image-图片标签,textImage-图文tvt_radius标签圆角tvt_type为text、textImage时有效标签左上角圆角2dptvt_type为text、textImage,且tvt_radius未设置有效标签左下角圆角2dptvt_type为text、textImage,且tvt_radius未设置有效标签右上角圆角2dptvt_type为text、textImage,且tvt_radius未设置有效。原创 2023-02-09 16:12:27 · 664 阅读 · 0 评论 -
Kotlin系列之不知道约定,可能有些代码你看不懂
约定的内容都讲完了,相信有部分约定其实在实际开发当中我们已经在用了,有的我们可能用的还很少,但是值得肯定的是,熟练掌握了约定,我们写代码的效率,或者是代码本身的可读性方面,都会有很大的提升~链接:https://juejin.cn/post/7196808785976426552作者:Coffeeee如果想要成为架构师或想突破20~30K薪资范畴,那就不要局限在编码,业务,要会选型、扩展,提升编程思维。原创 2023-02-07 11:02:39 · 202 阅读 · 0 评论 -
Android Framework分析init进程如何启动 Zygote 进程
大概可以分析是Service 用于通知 init进程创建名为 zygote 的进程,这个进程执行程序的路径为/system/bin/app_process64,其后面的代码是要传给 app_process64 的参数。打开app_main.cpp我们可以发现这里有一个main函数可以接收参数,而接收的参数也正是init.zygote64.rc第一行配置的。这里我们查看system/core/init/init.cpp的main函数,可以看到其中有行代码是解析init.rc文件。原创 2023-02-03 14:18:47 · 200 阅读 · 0 评论 -
Flutter这么好用,你确定不进来瞧瞧吗?(附免费《Flutter进阶学习笔记》)
Flutter是Google开源的构建用户界面(UI)工具包,帮助开发者通过一套代码库高效构建多平台精美应用,支持移动、Web、桌面和嵌入式平台。Flutter 开源、免费,拥有宽松的开源协议,适合商业项目。Flutter可以方便的加入现有的工程中。在全世界,Flutter 正在被越来越多的开发者和组织使用,并且 Flutter是完全免费、开源的。它也是构建未来的 Google Fuchsia 应用的主要方式。原创 2023-01-04 15:00:20 · 227 阅读 · 0 评论 -
分享:10月荣耀Android技术面面经
荣耀是一个很值得去的地方,我9月初投的简历,国庆上来陆续进行了面试,荣耀是有一轮技术面、一轮综合面以及一轮HR面,我也都感受了一遍,这里重点给大家讲一下技术面的内容,希望能够帮到大家。虽然 Android 没有前几年火热了,已经过去了会四大组件就能找到高薪职位的时代了。这只能说明 Android 中级以下的岗位饱和了,现在高级工程师还是比较缺少的,很多高级职位给的薪资真的特别高(钱多也不一定能找到合适的),所以努力让自己成为高级工程师才是最重要的。Android面试大致可以分为。原创 2022-12-31 15:45:25 · 1978 阅读 · 0 评论 -
SystemUI车载Hvac开发
备注:以下分析基于Android 9.0SystemUI 意即 系统界面,按照原生的职责划分,在车机上 SystemUI 更多是提供通用功能(与手机)的状态的展示,如状态栏对时间电量等的展示,导航栏对各功能页面提供跳转入口,仅此而已,至于其他的如 HVAC 等硬件相关的控制,都是交给对应的模块去做的.HVAC是 Heating, Ventilation and Air Conditioning 的英文缩写,就是供热通风与空气调节, 而。原创 2022-12-29 15:54:38 · 1020 阅读 · 0 评论 -
浅谈Android发展:安卓开发的未来发展是怎样的?我们该怎么做?
而很多优秀的创意也都一一被实现过了,即便再有也难逃资本的压制,市场已经被各大厂的全家桶式APP占据得差不多了,很多互联网公司开始发现,写个APP不难,难的是引进流量,而问题在于,市场已经没有多少“干净”的流量了……Android经过一段时间的摸索,并且有了成功的例子以后,第一个听到风声的是资本,当时的互联网公司都想通过一个小小的APP实现上市梦,市场也涌现出一大批Android培训机构,市场人人转Android,人人学Android,是Android开始火爆的“?真是个奇妙的时代~ 魔幻的时代~原创 2022-12-27 15:38:31 · 209 阅读 · 0 评论 -
如何起步Framework框架?看完这些豁然开朗!
安卓的系统架构了解吗?有没有过Framework的开发经验?由此可见,Framwork在Android开发中占着举足轻重的地位。服务端、客户端、Linux驱动。它提供了软件开发的框架,使得开发过程更具简便性和稳定性。原创 2022-12-13 15:47:45 · 564 阅读 · 0 评论 -
Android Xposed 框架
Xposed是一款优秀的Android HOOK框架,优势是模块编写起来相对比较容易,功能强大,缺点也比较明显,每次重新编译框架或者开启、关闭框架,都需要重新引导系统,比较麻烦,同时不能直接HOOK C/C++编写的函数,也比较容易被检测出来(当然了你可以把检测代码也HOOK掉),也是其局限性之一。来自:https://www.yuque.com/wrlu/security/android-xposed-hook。原创 2022-11-30 19:02:42 · 4142 阅读 · 0 评论 -
Android Sensor Native 源码分析
Sensor数据的分发最终还是走的Socket,SensorEventConnection类中持有 sp类型名为mChannel的实例,而其也持有一个应用包名字符串和Java虚拟机名字符串,一个应用对应一个SensorEventConnection,通过SensorEventConnection进行sensor监听的管理。来自:https://www.yuque.com/zestzone/bdds6v/viqstz。原创 2022-11-29 22:00:50 · 701 阅读 · 0 评论 -
Android组件间通信:Intent的用法
意图是允许应用程序组件从其他Android组件请求功能的异步消息。意图允许您与来自相同应用程序的组件以及其他应用程序提供的组件进行交互。例如,一个活动可以启动一个外部活动来拍照。意图是android.content.Intent类型。你的代码可以把它们发送到Android系统,定义你的目标组件。例如,通过startActivity()方法可以定义应使用意向来启动活动。在Android中,重用其他应用程序组件是一个被称为任务。应用程序可以访问其他Android组件来完成任务。例如,从应用程序的一个组件转载 2022-11-26 21:43:13 · 736 阅读 · 0 评论 -
Android设计模式实战-观察网络变化
首先Android的App中很多都有类似的效果,如网络变化之后没网络了,取缓存,如果有网络了刷新列表,如果有Wifi了下载插件等等。那么是如何实现的呢?有人说广播,是的,但是8.0之后安卓收紧了静态广播的定义与接收,如何实现才能兼容版本呢?原创 2022-11-25 17:47:39 · 377 阅读 · 0 评论 -
给flutter跨平台开发框架划重点,新的知识点不能落下
由于跨平台框架的众多优势,各大公司对跨平台框架的需求日益增长。第一,为了使应用程序的UI更具交互性,Flutter开发人员可以使用材质、交互模型、样式、文本、滚动等,这些小部件是替换本机组件的内置UI组件。第二,Flutter还有一个,允许开发人员立即检查输出,大大节省了开发的时间,提高了工作的效率。。事实上,现在的flutter已经较为成熟了,flutter官方还提供了不少的文档供我们参考,不过内容较为繁杂,还附带了大量的集成开发环境(ide)等,,相信大家会有更深入的认识,。原创 2022-11-23 14:01:07 · 187 阅读 · 0 评论 -
Android Hook机制
其实Hook并不是Android的专属。其实在Android出现之前,HOOK(钩子,挂钩)是一种实现Windows平台下类似于中断的机制。HOOK机制允许应用程序拦截并处理Windows消息或指定事件,当指定的消息发出后,HOOK程序就可以在消息到达目标窗口之前将其捕获,从而得到对消息的控制权,进而可以对该消息进行处理或修改,加入我们所需的功能,PC端游戏外挂用的就是这个原理。原创 2022-11-21 17:56:16 · 3605 阅读 · 0 评论 -
Android Jetpack 之 LifeCycle 组件
Jetpack 提供了两个类:LifecycleOwner(被观察者)和 LifecycleObserver(观察者)。通过观察者模式,实现对页面生命周期的监听。原创 2022-11-18 17:41:49 · 235 阅读 · 0 评论 -
毕业生规模创新高,Android面试怎么准备才能给自己减压?
根据相关报道,2023届高校毕业生规模预计1158万人,同比增加82万人,在这个就业形势严峻的情况下,教育部要求千方百计促进高校毕业生多渠道就业创业。现阶段,毕业生开始集体走向社会,在校大学生开始接触实习,还有所谓“金九银十”后再战社招的青年们。就业环境不好,每一次面试的机会都当其来之不易,对我们面试Android开发的同学来说,要清醒的认识到当下的就业情况,理性的看待压力。因为压力无处不在,在面试时我们会遇到技术压力面,在实习转正答辩上也会遇到咄咄逼人的提问。更为极端的情况有两种,一种是全程打压和否定质原创 2022-11-17 18:00:45 · 100 阅读 · 0 评论 -
SO库动态加载
第一步会通过ClassLoader通过我们之前传入的so名称找到文件名,当fileNeme为null时,就会报错找不到so文件,通过so的名称拼接成文件路径返回的是libmain.so,nativeLibraryPathElements 是 native library 路径的集合, 它的是 DexPathList 初始化的时候赋值在 DexPathList 的构造函数中,我们可以知道 nativeLibraryPathElements 是所有 Native Library 的集合。原创 2022-11-15 16:46:34 · 1524 阅读 · 0 评论 -
Android logd日志原理
无论是Android系统开发,还是应用开发,都离不开log,Androd上层采用logcat输出log。当日志输出过于频繁或者日志占用内存过大时,会有日志裁剪的动作:每次裁剪日志行数等于总行数的10%,并且需要大于等于4行,且不超过256行,优先裁剪黑名单以及log打印最多的那个uid, 以及system uid中打印日志最多的pid进程中的日志,也可以设置不裁剪的白名单。比如persist.logd.size.system;LOG_BUFFER_SIZE, 即256k;原创 2022-11-10 22:32:40 · 1475 阅读 · 0 评论 -
Android系统启动-Init进程
init进程是Linux系统中用户空间的第一个进程,进程号固定为1。Kernel启动后,在用户空间启动init进程,并调用init中的main()方法执行init进程的职责。解析并运行所有的init.rc相关文件根据rc文件,生成相应的设备驱动节点处理子进程的终止(signal方式)提供属性服务的功能接下来从main()方法说起。创建一块共享的内存空间,用于属性服务器;解析各个rc文件,并启动相应属性服务进程;原创 2022-11-08 22:28:15 · 690 阅读 · 0 评论 -
PowerManagerService之亮屏流程分析
亮屏的方式有很多,其中最常用的是 Power 键亮屏,这个流程比较简单,本文希望通过分析这个流程,从而理清操作屏幕的通用流程。原创 2022-11-06 23:22:23 · 771 阅读 · 0 评论 -
Android Native 异常捕获库
发生native异常时,安卓系统会将native异常信息输出到logcat中,但是java层无法感知到native异常的发生,进而无法获取这些异常信息并上报到业务的异常监控系统。业务部门可以快速实现java层的异常监控系统(java层全局异常捕获的实现很简单),又或者业务部门已经实现了java层的异常监控系统,但没有覆盖到native层的异常捕获。安卓还可以接入Breakpad,其导出的minidump文件不仅体积小信息还全,但有两个问题:1、和现状第1点的问题相同。2、需要拉取minidump文件并原创 2022-11-04 21:15:41 · 1077 阅读 · 1 评论 -
我在学了flutter后,得到了同事和项目主管的认可(内附flutter自学手册)
Flutter是一个跨平台开发工具,作为一位做了两年Android原生开发的人来说,对这种跨平台工具其实是不怎么看好的,也没有那么多时间去学,公司也没有这方面的需求。一次偶然的机会吧,看到了一篇安利flutter的文章,它对我产生的很大的兴趣。于是在接下来的一个月里,一有空我就去自学,去向同行长辈请教,上手了之后才发现原来flutter是这么好用,以下是我的使用感受:1、flutter使用的是dart语言,dart具备许多主流语言的共性,还有灵活的构造函数和简洁清晰的用语等,学起来也相对轻松很多。原创 2022-11-03 00:21:09 · 219 阅读 · 0 评论 -
Android通过搜索框架实现搜索功能
Android 搜索框架提供了搜索弹窗和搜索控件两种使用方式。搜索弹窗:系统控制的弹窗,激活后显示在页面顶部,输入的内容提交后会通过Intent传递到指定的搜索Activity中处理,可以添加搜索建议。搜索控件(SearchView):系统实现的搜索控件,可以放在任意位置(可以与Toolbar结合使用),默认情况下与EditText类似,需要自己添加监听处理用户输入的数据,通过配置可以达到与搜索弹窗一致的行为。原创 2022-10-30 23:39:32 · 3254 阅读 · 0 评论 -
Android中FileProvider的各种应用场景
有部分同学只要是上传或者下载,只要用到了文件,不管三七二十一写个 FileProvider 再说。不是每一种情况都需要使用 FileProvider 的,啥?你问行不行?有没有毛病?这… 写了确实可以,没毛病!但是这没有必要啊。如果不需要FileProvider就不需要定义啊,如果定义了重复的 FileProvider,还会导致清单文件合并失败,需要处理冲突,从而引出又一个问题,解决 FileProvider 的冲突问题,当然这不是本文的重点,网上也有解决方案。原创 2022-10-27 09:00:00 · 699 阅读 · 0 评论 -
Android音频管理器AudioManager用法
当我们在听歌时,当我们在刷小视频时,当我们在看动漫、在看电影、在追剧时,不知道是否有人注意到,在这些软件中滑动屏幕或者拖动滑动条就可以直接控制音量,而不需要去按手机硬件上的音量键。先调用 getSysytemService方法来获取系统的音频管理器,然后再调用 AudioManager的方法控制手机音频即可。在某些时候,程序需要管理系统音量,或者让系统直接静音,这就要借助于Android提供的AudioManager来实现了。STREAM_MUSIC:手机音乐的声音。最后在onCreat中实现 静音。原创 2022-10-26 22:05:07 · 1426 阅读 · 0 评论 -
Android 第三方库AgentWeb的使用
Android开发经常会用到WebView,用于加载网页。系统自带的WebView性能和流畅度都一般,AgentWeb是一款第三方的WebView,性能比系统自带的要好,功能也更多。AgentWeb是一个高度封装的Android WebView,简单易用,带进度条,支持文件上传,下载,简化Javascript通信,链式调用,加强Web安全的库。让你轻松集成一个轻量级浏览器在应用上。原创 2022-10-26 00:18:37 · 4555 阅读 · 0 评论 -
使用stipopsdk将贴纸集成到Android应用程序中
我们将开始为手机和平板电脑创建一个新项目。然后我们选择基本活动或空活动。确保选择Kotlin,并检查是否将最低SDK设置为API级别26以上的任何值,以便演示程序正常工作。准备工作已经基本完成了。剩下的就是将存储库和依赖项添加到我们的构建中。Jitpack存储库转到根构建的存储库部分的末尾。Stipop SDK依赖性将转到应用程序构建的依赖项部分的末尾。正式开始:让我们从stipopsdk开始吧我们在一开始下载的json文件将放在“assets”文件夹中,该文件夹位于app > src > main原创 2022-10-24 22:29:36 · 165 阅读 · 0 评论 -
探索Android LiveData的使用和行为
Android LiveData是可观察和生命周期感知的数据。假设生命周期所有者是一个活动,生命周期感知意味着它只在活动处于活动状态时向UI发送更新。Activity is active表示UI在后台(已启动状态)或在前台(恢复状态)可见。原创 2022-10-23 20:15:19 · 761 阅读 · 0 评论 -
通过 OkHttp 拦截器拦截安卓系统中的网络请求
对于每一个新的特性,产品api的新端点都必须被创建来向应用程序提供数据,在api还没有准备好使用之前,Android团队使用拦截器来模拟网络请求,并提供虚拟响应,以便继续进行开发工作。3、最后,我们在我们的按钮上添加了一个点击监听器,该监听器通过改造进行网络调用,并将数据放在textview中。这是一个简单的布局,包含一个按钮和一个文本视图,我们将通过单击按钮进行网络调用,并在文本视图中显示数据。在继续之前,让我们首先在项目中添加一个测试响应,拦截器将在拦截请求后提供该响应。以上就是本文的全部内容,原创 2022-10-18 14:09:05 · 2210 阅读 · 0 评论 -
在Android上使用OpenCV创建和优化自定义模糊
图像由排列在二维网格中的若干像素组成;行和列。图像的分辨率是行数和列数的乘积,行表示图像的高度,列表示图像的宽度。一个1080x720的图像总共有777600个像素,每个像素都由一些称为通道的颜色组成。数字图像通常由3个通道组成;红,绿,蓝。灰度图像只有一个通道;黑色或白色。每个像素由8位(~1字节)表示,其值范围为0-255。每当模糊等效果应用于图像时,实际上,这是一组直接应用于像素的数学运算,以获得所需的结果。有各种各样的技术用来模糊图像,其中一些是:1、均值滤波器2、高斯模糊。原创 2022-10-17 14:43:20 · 478 阅读 · 0 评论 -
Ktor和GraphQL
GraphQL是API的查询语言,也是处理查询的服务器端运行时。把GraphQL看作是现有API或数据库的外观。GraphQL还利用类型系统来定义后备数据。GraphQL没有绑定到任何特定的数据库或存储引擎。相反,它是由您现有的代码和数据支持的。API开发人员使用GraphQL创建架构描述客户机可以通过该服务查询的所有可能的数据。你可以定义一个对象的类型和类型。作为查询来吧,GraphQL根据模式验证查询。然后,GraphQL执行已验证的查询。API开发人员将模式中的每个字段附加到名为分解器。原创 2022-10-16 11:41:26 · 285 阅读 · 0 评论 -
在Android上探索动态特征导航
在这篇文章中,我们将深入研究动态特性导航库,不仅学习如何在应用程序中使用它,还将了解它的组件如何在引擎盖下工作。原创 2022-10-14 20:50:43 · 512 阅读 · 0 评论 -
Android开发工程师都在阅读这本源码解析大全
当前的Android开发有多卷呢,在各大Android论坛上,我们总能看到不少大学生的身影出现,有时候问的问题之专业实在让人汗颜。的确,如果不努力提高自己的技术水平,这局势还真难找份好的工作。就拿源码来说,近年来在面试中变得越来越重要,诸如阿里、腾讯等大公司,如果你在简历中写到熟悉glide、OKHttp等,就极有可能问你有没有看过源码,因为对于这些部分的知识点,通过源码阅读无疑是最好的学习方法,它能让我们理解问题更加深入,也能够通过这个看出你的学习能力和思维方式,带着源码看问题,自然是一个加分项。原创 2022-10-12 16:55:08 · 147 阅读 · 0 评论 -
Android中的Viewgroup分析
一个View的测量宽和测量高一定要遵循父View的约束,这保证了在测量过程结束的时候,所有的父View可以接受子View的测量值。我们会发现,整个界面又和以前一样,只显示一片绿色了,组件又不见了,你可以尝试改变layout的背景颜色,会发现最后显示的界面颜色也变化了,所以可以判定,我们这样子写,只是显示了最最外层的代码,并没有触发整个布局去绘制她自己的子View(这里指的是imageView和textView)。在这个过程中,每个父View负责通过计算好的尺寸放置它的子View。原创 2022-10-10 18:36:04 · 462 阅读 · 0 评论 -
Android中的引用类型及其使用分析
Android中有四种引用类型,分别是:Strong reference - 强引用、Soft Reference - 软引用、Weak Reference -弱引用、Phantom Reference - 虚引用不同的引用类型有着不同的特性,同时也对应着不同的使用场景。原创 2022-10-09 21:17:47 · 670 阅读 · 0 评论 -
缩招现象下android开发的求生密码
校招offer减少,缩招现象真的来了。从字节跳动这两年发布的校招offer来看,招聘认识八千+减少到了三千+,这一断崖式缩减的背后,是互联网企业降本增效的体现。一方面,互联网大热的时候公司高薪挖人、高量招人,已经有了充足的储备人才,这在现有经济环境下反而成了一种负担;原创 2022-10-06 22:20:15 · 126 阅读 · 0 评论 -
如何在 SCADE 中的 Swift 跨平台原生应用中显示图像
与 SCADE 中的所有其他控件一样,图像控件充当原生控件的包装器,将其部分功能公开给用户。在本教程中,我们将学习如何在应用程序内显示图像或从互联网动态下载图像。如今,我们无法想象没有图像的应用程序。尽管图像存储在 assets 文件夹中,但它们是在运行时加载的。SCADE目前仅支持出色的图像格式,如 PNG、SVG 和 JPG。原创 2022-09-14 20:30:17 · 323 阅读 · 1 评论