手机版
热门标签
站点地图
我要投稿
广告合作
联系我们
搜 索
广告位招租
广告位招租
切换导航
首页
编程教程
编程导航
编程百科
编程问答
编程博文
编程实例
硬件设备
网络运营
软件教程
移动数码
办公软件
操作系统
人工智能
栏目导航
▸ 编程语言
▸ 前端开发
▸ 移动开发
▸ 开发工具
▸ 程序设计
▸ 行业应用
▸ CMS系统
▸ 服务器
▸ 数据库
公众号推荐
微信公众号搜
"智元新知"
关注
微信扫一扫可直接关注哦!
子栏目导航
iOS
Android
Swift
Hybrid
Cocos2d-x
Flutter
Xcode
Silverlight
cocoa
Cordova
编程之家
Android
Android 架构最新进展 | MVI = 响应式编程 + 单向数据流 + 唯一可信数据源
作者:唐子玄引子MVI 是Model-View-Intent的简称,它们分别表示。。。。。我并不打算逐个字母介绍它们代表的意思。因为这样一点也不能增进对 MVI 的理解,反而会对它的认识蒙上厚厚的一层迷雾。奥古斯都在《忏悔录》里面问我这样一个问题:“时间到底是什么?你不问我的时候,我是知道的;你一问我,我就不知道了。”把“时间”换成“MVI”,这个问题同样困扰着我:“MVI 到底是什么?你不问我的时候,我是知道的;你一问我,我就不知道了。”维特根斯坦会说,上面是一个非法的问题,源于错误地使.
作者:码中之牛 时间:2022-12-01
Android 面试笔录(精心整理篇)
activity的几种启动模式是android中常考的知识点,一般会考察有哪几种启动模式,以及每种启动模式在什么场景下使用::这个是android默认的Activity启动模式,每启动一个Activity都会被实例化一个Activity,并且新创建的Activity在堆栈中会在栈顶。:如果当前要启动的Activity就是在栈顶的位置,那么此时就会复用该Activity,并且不会重走onCreate方法,会直接它的方法,如果不在栈顶,就跟一样的。如果当前activity已经在前台显示着,突然来了一条推送消息,
作者:码中之牛 时间:2022-12-01
Android 平台下的 Method Trace 实现解析
对于开发者来说,Android的Java 层 提供了两种开发者可直接调用的 Method Trace 的API,一是 android.os.Debug类中的 startMethodTracing相关API,第二个 是android.os.Trace 类中的beginSection相关AP。 这两者的区别是 Debug类只能监控 Java函数调用, 而Trace类底层是使用 atrace 实现,其追踪的函数会包含了应用及系统的Java 和Native函数,并且底层基于ftrace还可以追踪cpu的详细活动信息
作者:码中之牛 时间:2022-12-01
Android 开发面试心得总结,实录整理必看
一般Android面试分为两部分:Java部分和Android部分,下面说一下自己面试过程遇到的一些具体题目和一些相关知识点。文末有福利送给大家1)JAVA基础下面列一两个遇到的题吧类似这种的题很多,考察的都是基础知识的牢固性。所以需要自己多巩固基础。2)数据结构和算法常见的数据结构就是:数组,栈,队列,集合,映射,链表,堆,二分搜索树,红黑树。当然还有其他的一些,比如AVL平衡树等一些数据结构。我们要做的就是了解它们的实现原理和各自的优缺点。数据结构部分面试遇到最多的就是:算法算法其实就是我们平时常
作者:码中之牛 时间:2022-12-01
让你易上手的Jetpack Compose帮你写出漂亮的小组件-Jetpack Glance
作者:HyejeanMOON转载地址:https://juejin.cn/post/7098975953199726606因为在iOS14中推出的小组件的功能,让大家重新开始关注起小组件了。虽然安卓是很久之前就有了小组件的功能,但是因为它的不美观和不实用,以及对开发者也不够友好,逐渐变成为废弃的状态。直到Android12,再一次更新了小组件的的相关功能,并且为了减少开发者的负担而推出了Jetpack Glance库。该库是基于Compose,是开发者利用Compose的命令快速上手进而减少开发成.
作者:码中之牛 时间:2022-12-01
一次关于架构的“嘴炮”
作者:字节跳动技术团队转载地址:https://juejin.cn/post/7078249602410889247文章标题很随意,些微有一些骗点击的“贼意”;但内容却是充满了诚意,想必你已经感受到了。这是一次源于头条 Android 客户端软件架构问题的探讨,之所以冠上“嘴炮”之名,是因为它有一些务虚;同时又夹杂了一些方法论,不仅适用于客户端软件架构,也适用于其他工作场景,希望对大家有所帮助。为了拉满读者的带入感,且以“我们”为主语,来看架构的挑战、判断和打法。我们的挑战期望高优秀的公司.
作者:码中之牛 时间:2022-12-01
如何从Android 应用深入到Framework?
路只有一条:Read the fcking source code。翻译过来读源码,不论是看书,看博客,你的最终目的只有一个「学会看源码」,而不是「学会源码」。关于如何阅读源码,这不是一个简单的问题,我有几点经验 给大家分享:看不懂的多读。上面已经说过了,没有人一学就会;特别是对于初学者,你刚看系统源码,肯定一头雾水;万事开头难,在你觉得艰深晦涩的时候,你就当在背课文;Android Framework的代码时遵循一定规范的,你在背了一篇课文之后,再去读别的课文,读到一半的时候就算你看不懂,很有可能你就会
作者:码中之牛 时间:2022-12-01
一个Android沉浸式状态栏上的黑科技
说起来,在不知不觉中,我竟然凑成了这沉浸式状态栏三部曲。其实最开始的时候,我主要是因为工作上的原因想要在Android版的Edge浏览器上实现首页图片沉浸式的功能。那么为了实现这个功能,我提前去做了一些技术调研,并将调研的结果整理成了一篇文章,具体可参阅 再学一遍android:fitsSystemWindows属性 。做完技术调研之后,接下来就是功能实现了。对于Android版的Edge浏览器而言,首页图片的沉浸式一直是部分网友长久以来的呼声,经过我的各种攻坚和踩坑之后,终于将这个功能完成了。具体可参阅
作者:码中之牛 时间:2022-12-01
一看就会 Android开发架构中[三化]的演变与示例
作者:newki转载地址:https://juejin.cn/post/7098915987311263781对于整个Android开发来说,整体的开发架构离不开三化这个名词:模块化,组件化,插件化。下面一起来看看它们是如何一步一步演变成今天的模样。一. 模块化软件开发不管是哪一个方向,大家都知道高内聚,低耦合的思想。模块化也是每一门语言,各个方向的开发者都会处理的问题。在Android开发方向来说,模块化就是把常用的UI,网络请求,DB操作,第三方服务等公共的部分抽取封装成模块,方便复用。.
作者:码中之牛 时间:2022-12-01
TextView文本大小自动适配与TextView边距的去除
标题太难取了,其实本文主要就是讲如何控制文本大小,让其自动适配宽度,其次我们还需要精准控制Text的高度和宽度间距等属性。一般我们的布局都是分 match parent 和 wrap content 而他们的自动方式又有所不同。下面看看都有哪些方式来实现!官方推出的TextView的Autosizing方式,在宽度固定的情况下,可以设置最大文本Size和最小文本Size和每次缩放粒度,非常方便的就能实现该功能。autoSizeTextType:设置 TextView 是否支持自动改变文本大小,none
作者:码中之牛 时间:2022-12-01
Android Framework 启动流程简单解析~
对于Android开发,干上几年后,都要进阶,或者直接转行了。如果你还在干Android,想要进阶 对Framework的了解是必不可少的过程,下面就开始进入今天的主题吧。我们知道,对于任何程序语言而言,入口一般都是main函数。那Android的程序入口在哪呢? 他的main函数是怎么启动起来的呢?可能熟悉Android的朋友,知道一个应用程序的入口在ActivityThread中,那有个问题,ActivityThread中的main函数是何时被谁被调用的呢?将从本文中找到以上答案,如果已经熟悉了此过程的
作者:码中之牛 时间:2022-12-01
API处理Android安全距离
在Android屏幕的空间中,大部分的区域我们都是可以随意绘制,只有一部分区域是显示的固定内容:其中标题栏是可选的,除了Material风格的应用应用的并不多,页面内容就是android.R.id.content是Activity的主要内容。而我们主要需要讨论的就是 状态栏和导航栏,因为这两个区域在不同设备类型,不同的Android版本和不同的厂商下大小和效果是不同的,等等。这些差异无疑增加了我们做页面适配的复杂程度,也更容易出现兼容问题。在2017年下半年iPhone X的发布,引入了刘海屏设备,导致了
作者:码中之牛 时间:2022-12-01
对 Android 开发者来说,Google Play 到底哪里不一样?
作者:少数派对有一定经验的 Android 玩家来说,在下载 App 这件事情上,Play 商店依然是那个值得排除万难、能上就上的选择,没有之一。坊间还流传着各种关于「Play 版」应用的传闻:Play 版应用有 FCM 推送、Play 版应用更省电、Play 版应用没广告、Play 版应用有更适合现代设备的 64 位版本……这种「Play 版更好」的说法究竟是科技圈的都市传说还是确有其事?为什么国产应用在 Play 商店中正变得越来越少了?今天这篇文章,我们从一个对普通用户而言可能会有点陌生的.
作者:码中之牛 时间:2022-12-01
为什么说 Gradle 是 Android 进阶绕不去的坎
前言Gradle 作为官方主推的构建系统,目前已经深度应用于 Android 的多个技术体系中,例如组件化开发、产物构建、单元测试等。可见,要成为 Android 高级工程师 Gradle 是必须掌握的知识点。在这篇文章里,我将带你由浅入深建立 Gradle 的基本概念,涉及 Gradle 生命周期、Project、Task 等知识点,这些内容也是 Gradle 在面试八股文中容易遇见的问题。从这篇文章开始,我将带你全面掌握 Gradle 构建系统,系列文章:1、Gradle 基础2、Gradle
作者:码中之牛 时间:2022-12-01
【Kotlin Flow】 一眼看全——Flow操作符大全
作者:搬砖小子出现了转载地址:https://juejin.cn/post/6989536876096913439Kotlin Flow 基本上可以替代RxJava,其提供了诸多操作符来处理数据。本篇文章为其分一下类,演示下基本用法。恩…建议大家看一眼右侧的滚动条,然后点击下收藏。弃用的方法就不罗列了。Ctrl + F 快速查找1前置资料冷流
作者:码中之牛 时间:2022-12-01
Android常见原理性面试题初步整理~
1) Handler线程的消息通讯的桥梁,主要用来发送消息及处理消息。2) Thread普通线程,如果需要有自己的消息队列,需要调用Looper.prepare()创建Looper实例,调用loop()去循环消息。3) HandlerThread是一个带有Looper的线程,在HandleThread的run()方法中调用了Looper.prepare()创建了Looper实例,并调用Looper.loop()开启了Loop循环,循环从消息队列中获取消息并交由Handler处理。利用该线程的Looper创建
作者:码中之牛 时间:2022-12-01
什么是Android组件化,为什么要组件化?
组件化作为Android客户端技术的一个重要分支,近年来一直是业界积极探索和实践的方向。每个大厂内部的各个Android开发团队也在尝试和实践不同的组件化方案,并且在组件化通信框架上也有很多高质量的产出。本文主要介绍我们的组件化方案,希望对从事Android组件化开发的朋友能有所启发。近年来,为什么这么多团队要进行组件化实践呢?组件化究竟能给我们的工程、代码带来什么好处?我们认为组件化能够带来两个最大的好处:1.提高组件复用性可能有些人会觉得,提高复用性很简单,直接把需要复用的代码做成Android Mod
作者:码中之牛 时间:2022-12-01
如何优雅地画一张图
在 Flutter 中,若我们需要自定义画一张图,则需要用到 ,不过 并不是本篇文章的重点,所以我就直接贴出 的相关代码,保证能够正常绘制即可。绘制的效果:其中,最核心的绘制在 的 中。我们可以看到,canvas 绘制图片有三种方式:他们都有一个核心共同点,那就是需要绘制的图片数据,但是这个 Image 并不是我们经常在 UI 效果上写的 ,而是 ,所以获取图片数据的方式就不太一样。在这里我封装了一个图片转换工具:支持转换网络图片、文件图片、Asset 中的图片,只需要传入图片路径和图片的类
作者:码中之牛 时间:2022-12-01
LiveData 面试 7 连问~
作者:唐子玄链接:https://juejin.cn/post/7085037365101592612引子LiveData 是能感知生命周期的,可观察的,粘性的,数据持有者。LiveData 用于以“数据驱动”方式更新界面。换一种描述方式:LiveData 缓存了最新的数据并将其传递给正活跃的组件。关于数据驱动的详解可以点击我是怎么把业务代码越写越复杂的 | MVP - MVVM - Clean Architecture。https://juejin.cn/post/68449041762.
作者:码中之牛 时间:2022-12-01
Android热修复,插件化理论与实战
本文现实讨论一下Java虚拟机的理解 以及 类Java加载过程,引申出热修复与插件化实现的核心点,类加载技术,分析思路之后使用ClassLoader+反射实现了基本效果在编程的上古年代,程序员直接面对硬件编程,机器计算机只认识0和1,不同硬件的指令都是不同的,所以代码完全不能复用。在Java诞生之初 有一个非常著名的口号 “一次编写,到处运行” ,它是如何实现的呢?人类编写的高级语言Java如何转化为机器认识的01呢我理解的答案是:分层最初的层次:代码—机器Java出现之后的层次:Java—Java虚拟机—
作者:码中之牛 时间:2022-12-01
如今的Android 开发都怎么了?我问的面试题有这么难吗?
在Android 行业摸爬滚打了十年左右的我,时不时会被公司要求去做面试官面试别人。在这段期间我也收到了不少的简历,面试了各种技术不一的人。许多候选人的工作年限都不少,基本都是在3~5年左右,但他们做的都是一些非常传统的项目,如果想通过简历直接判断一个人的能力是很难的,何况现在大环境越来越难做,大家找工作也越来越难。所以想知道一个人的真实实力,还是要通过面试才知道真实水平。只有通过沟通才会发现他们的真实技术能力,在通过他们的年限和技术能力进行定位,看是否对应他们应聘岗位的等级。面试时我打算聊点基础的,先打开
作者:码中之牛 时间:2022-12-01
重走Flutter状态管理之Riverpod最终篇
我们在掌握了如何读取状态值,并知道如何根据不同场景选择不同类型的Provider,以及如何对Provider进行搭配使用之后,再来了解一下它的一些其它特性,看看它们是如何帮助我们更好的进行状态管理的。所有的Provider都有一个内置的方法来为你的不同Provider添加额外的功能。它们可以为 ref 对象添加新的功能,或者稍微改变Provider的consume方式。Modifiers可以在所有Provider上使用,其语法类似于命名的构造函数。目前,有两个Modifiers可用。一个Provider可
作者:码中之牛 时间:2022-12-01
面试官:如何秒开视频?什么是秒开视频?
给大家带来一些音视频的面试题,或者说是一些开发思路吧,不希望它成为以后你面试的八股文…这次主要是视频秒开方面。秒开是指用户点击播放到看到画面的时间非常短,在 1 秒之内。为什么需要秒开?目前主流的直播协议是 RTMP,HTTP-FLV 和 HLS,都是基于 TCP 的长连接。在播放的过程中,若播放端所处的网络环境在一个较佳的状态,此时播放会很流畅。若网络环境不是很稳定,经常会发生抖动,如果播放端没有特殊处理,可能会经常发生卡顿,严重的甚至会出现黑屏。而移动直播由于其便捷性,用户可以随时随地发起和
作者:码中之牛 时间:2022-12-01
一起看 I/O | Jetpack Compose 中的新特性
转载地址:https://mp.weixin.qq.com/s/jTEXk_58KxMUgOL33VOn4wJetpack Compose 1.0 正式版已经发布快一年的时间了,我们看到社区正以极大的热情采纳和使用 Compose: Kotlin 语法的简洁性以及使开发界面变得更快速、更简单的声明式开发方式得到了广大开发者们的赞赏。Compose 在社区中的反响我们看到许多公司已经在大规模采纳 Compose 为其应用开发最新、最具创造性的功能。例.
作者:码中之牛 时间:2022-12-01
Android AutoService 组件化
随着 App 的业务增加、版本迭代以及冗余的 “远古时期” 代码,App 代码变得臃肿增量叠加、开发者需要了解各个功能、单测功能编译时长、没有统一快速开发框架,代码复用性低,组件化开发就很有必要。组件化开发框架可以细化为不同的部分,包括 Android UI、网络请求、数据库持久化、图片处理、View、工具类、sdk、内部统一风格组件等;框架包括但不限于通用功能,如果是部门内部项目中通用的功能,也可以独立出来成为一个通用的库存在。① ARouter:基因中自带支持从webview中调用、不用互相注册(不用知
作者:码中之牛 时间:2022-12-01
对 Android 应用换肤方案的总结
作者:me虽然现在已经有很多不错的换肤方案,但是这些方案或多或少都存在自己的问题。在这篇文章中,我将对 Android 现有的一些动态换肤方案进行梳理,对其底层实现原理进行分析,然后对开发一个新的换肤方案的可能性进行总结。1通过自定义 style 换肤1.1 方案的基本原理这种方案是我之前用得比较多的一种方案。我在使用的时候也做了很多的调整。开源版本可以参考 Colorful 这个库。https://github.com/garretyoder/Colorful它的实现方式是:用户提前自定.
作者:码中之牛 时间:2022-12-01
Flutter 3.0 强势来袭,实现了开发方式上六大平台的统一
1 Flutter 3.0给我们带来什么影响5月12日,Flutter 3.0 在 Google I/O 开发者大会正式亮相,随着 3.0 版本的发布,Flutter 开发框架终于可以支持六大平台,实现了其跨平台稳定运行的愿景。Flutter 3 现已来临如今,Flutter终于在开发方式上实现了大一统,所有的本地开发均可用Flutter完成,开发者可以通过一套代码库,来支持 iOS、Android、Web、Windows、macOS、Linux 六大平台软件的开发,真正做到一个代码,处处运行的愿
作者:码中之牛 时间:2022-12-01
Android 开发需要注意的事项?
转载地址:https://www.jianshu.com/p/01658bbd7ffa最近在网上看许多面经的文章,有拿到Offer的,也有凉经,这些文章中都有一个共同的特点,就是单单的只有面试题目。而没有什么面试过程中需要注意的细节和面试心得。那些文章给自己做刷题参考还可以。正是这样导致有些人在面试前几天就狂刷那些题,没有去注重面试过程中需要那些细节,到了正式面试的时候就很紧张,怕面试官太严格问的问题打不上,怕与人沟通太紧张,怕自己技术不过关,没错, 这些问题都是我们比较害怕面试紧张的原因,我相信还有许
作者:码中之牛 时间:2022-12-01
Android联系人数据的获取与分页查询功能封装
现在很多应用为了拉新,直接就获取你手机通讯录,查看当前联系人是否是我们的用户,如果不是我们的用户,就邀请他注册我们的应用。常规操作了,微信也这么干过。本文的重点是我们自己的应用如何获取联系人呢?这就涉及到跨进程交互。我们自己的App和系统的联系人App通信,读取联系人App的数据。AIDL! 哟,会抢答了。
作者:码中之牛 时间:2022-12-01
一文了解在Android中如何使用MVI架构
1前言大约在去年11月份,Google将官方网站上推荐的MVVM架构悄悄替换成了MVI架构。参考了官方与许多前辈的分享,便有了此文。不过下面的再前言应当是每个读者心中所需要认定的。2再前言总览我所有的博客,我很少写关于架构模式相关的文章。因为我觉得不管是从刚开始所使用的MVP、MVVM再到现在Google官方所推荐的MVI架构,我希望各位读者千万不要将教条主义当真理。官方推荐了MVVM就马上去踩MVP,官方推荐了MVI就马上去踩MVVM,甚至使用MVVM的开发者会鄙视使用MVP的,使用MVI的开发
作者:码中之牛 时间:2022-12-01
上一页
1
2
3
4
5
6
7
8
下一页
小编推荐
热门标签
更多
python
JavaScript
java
HTML
reactjs
C#
Android
CSS
Node.js
sql
r
python-3.x
MysqL
jQuery
c++
pandas
Flutter
angular
IOS
django
linux
swift
typescript
路由器
JSON
路由器设置
无线路由器
h3c
华三
华三路由器设置
华三路由器
电脑软件教程
arrays
docker
软件图文教程
C
vue.js
laravel
spring-boot
react-native