android通用
文章平均质量分 83
图你怀中安稳
人生的境界在于不断的提升自我素养,探索未知的世界
展开
-
Java Stream:让你的集合操作如丝般顺滑
filter(Predicate predicate) 对流中的元素进行筛选,只保留符合条件的元素。map(Function mapper) 对流中的元素进行映射操作,将每个元素映射成一个新的元素。) 对流中的每个元素进行映射操作,将每个元素映射成一个新的流,并将多个流合并成一个流。distinct() 去除流中的重复元素。sorted() 对流中的元素进行排序操作。limit(long maxSize) 对流进行截取操作,只保留前n个元素。原创 2024-01-08 15:03:04 · 406 阅读 · 0 评论 -
Android 组件化代码中心化问题之.api化方案
theme: channing-cyanhighlight: a11y-light一、代码中心化问题将一个大型的项目拆分成多个Module或者新开的组件化项目,想要的预期是这些module之间是平级的关系.这样一来就可以使得业务相对集中,每个人都可以专注在一件事上。同时,代码的耦合度也会随之降低,达到高度解耦状态,因为同级的module不存在依赖关系,在编译上就是隔离的,这会让组件间的依赖非常清楚,同时也具有更高的重用性,组件强调复用,模块强调职责划分。 他们没有非常严格的划分。达到可复用要.原创 2021-09-09 17:08:37 · 531 阅读 · 0 评论 -
组件化依赖管理办法
theme: channing-cyan在组件化过程中,面临着非常多的复用、切换等场景,对于组件化中的dsl文件,也可以尝试将其组件出来,更好的复用、更好的管理。一、利用buildSrc + .buildscript 对dsl 文件进行组件化1.1 buildSrcbuildSrc 一种可以利用kotlin DSL + kotlin 语言来充当groovy 中ext的操作方式,Android Studio 可以自动在项目根目录中形成可依赖的文档,届时我们可以利用它来管理版本号,依赖以及提供一.原创 2021-09-09 17:07:44 · 382 阅读 · 0 评论 -
Android技术控固
由于公司原因,从当时的Android开发先转向了web开发,现已一年有余,期间对于Android技术的热爱,一直在学习、练习,从Java到kotlin,从基础到专项(原理性),包括网络框架、框架组合、jetpack新秀的学习、使用,今天要分享的这个项目是一个图片浏览项目,很简单的列表展示,但是里面设计到了很多的知识,足够概括开发的问题设计技术:kotlin语言kotlin 的一些使用技巧jetpackretrofitdagger2Android 常用型项目组织架构其他项目地址:I.原创 2020-09-01 15:36:45 · 187 阅读 · 0 评论 -
Android 优雅的处理是否jump逻辑
在项目开发中我们都会遇到判断是否登录、是否是会员、是否有数据等等,不唯一跳转路径的业务,这种业务有个优点就是好写,确定就是需要写的多。那写的多能算一个缺点吗? 也不算,但是对于代码的刻度性来讲,一个方法一点击引用处,出现几十处,总归不是很好的,我们需要将这些简单的功能精简化是不是很简单的一个逻辑,反手就写出来了// UserUtils:fun isLogin(user: User) :Boolean{ return user.xx == null}然后呢?然后当然是使用了// .原创 2020-08-31 16:15:02 · 257 阅读 · 0 评论 -
Retrofit + OkHttp3 + coroutines + LiveData打造一款网络请求框架
一个好的网络框架需要有那些特点呢?请求当然这个请求不单单是发送请求这么简单,它包括请求相关的一系列配置是否简易、发送模式是否灵活切换、请求头信息是否易处理、请求参数是否易操作等等响应一个好的网络请求框架肯定需要提高我们的生产力,保证我们程序的健壮性,那么响应体和这些又有什么关系呢?容易转换成不同需求的实体是否能返回不同类型的结构。xml、json、text等等总的来说就是易使用、易扩展、可读性高一、目的背景市场上现在存在的网络请求不在少数,从原生的HttpClient 到.原创 2020-08-11 17:31:29 · 1528 阅读 · 4 评论 -
在项目中优雅的使用ViewModel
ViewModel 是jetpack(Google 提供的应用开发框架)中的解耦数据和UI,可感知生命周期的方式存储数据,可以随着Activity的生命周期进行数据的控制,解决了以前Activity的切换横竖屏重新加载数据等问题,但是ViewModel 最主要的不是保存短在的数据在其属性中,而是通过它进行数据与UI的无感知更新,一、ViewModel 的生命周期ViewModel 存在的时间范围是获取ViewModel 时传递给ViewModelProvider的Lifecycle,而后ViewMo.原创 2020-06-17 15:18:13 · 1984 阅读 · 0 评论 -
中介者模式下的Android底部导航栏
Mediator Pattern: 中介者模式, 用一个中介对象来封装一系列的其他对象的交互,使各个对象不需要显示的相互调用,使其耦合松散,降低多个对象类之间的通信复杂性。详细流程以后补充, 有点忙,代码上传了 代码非常好理解,从字面意思中就能明白什么是中介者模式,那么对于Android底部导航栏有很多种实现方式,为什么还需要自己去设计呢?并且是使用中介者模式,典型的简单功能复杂化,是这样吗?答案肯定是不。从入行程序开发开始,就或听或写各种开发模式,开发模式能提升开发效率,扩展性、易维护等等,.原创 2020-06-16 16:48:13 · 194 阅读 · 0 评论 -
别人说你和狗屎一样 — databinding
对于开发来说,其实应该遵从两点,对于好的产品和代码就必须承认是好的,对于不认同的就是认为像狗屎一样一、 一千个人心中可以有一千个哈姆莱特,但技术它不行!任何事物都不是唯一的,大家都可以有自己的想法,我也是认同的,但是技术方面,不能是这样也不会是这样的1.1 本文想说点什么?DatabindingDatabinding 带给开发的快感Databinding 带来的影响kotl...原创 2019-12-06 16:18:50 · 386 阅读 · 0 评论 -
Android 组件化 (二)之重要的Application和Androidmanifest.xml
接着Android 组件化(一) 回答一下大婶的问题原创 2018-06-14 15:43:05 · 1131 阅读 · 0 评论 -
git Fetch enter credentials for http://192.168.1.1 报错问题
在添加密码是不要选择rember 就可以了原创 2018-08-03 17:51:57 · 4689 阅读 · 1 评论 -
Android 指纹识别(给应用添加指纹解锁)
使用指纹 说明 : 指纹解锁在23 的时候,官方就已经给出了api ,但是由于Android市场复杂,无法形成统一,硬件由不同的厂商开发,导致相同版本的软件系统,搭载的硬件千变万化,导致由的机型不支持指纹识别,但是,这也挡不住指纹识别在接下来的时间中进入Android市场的趋势,因为它相比较输入密码或图案,它更加简单,相比较密码或者图案,它更炫酷 ,本文Demo 使用最新的28 支持的...原创 2018-09-04 15:54:52 · 11046 阅读 · 0 评论 -
Mac 中gradle修改配置后 版本不发生变化问题
在开发使用的gradle ,在更新的时候有时候会出现“` Minimum supported Gradle version is 4.9. Current version is 4.7“`在项目中配置也是4.9 ,发现是没有问题的,那问题就在本地的gradle版本了打开命令行gradle -v 显然展示的是gradle 4.7 这是我们要进行的操作就是在...原创 2018-09-11 17:05:22 · 2436 阅读 · 0 评论 -
Retrofit中的设计模式之代理模式
Retrofit中使用到了很多设计模式,其核心的模式是代理模式,因为Retrofit 不是一个网络框架,而是一个对网络框架进行封装的工具,利用注解将请求的接口以java的接口形式展现,其请求的核心还是Okhttp,它的几个核心的功能:转换注解、解析请求的参数、请求、将请求的结果适配为我们想要的结果等重要功能都是在动态代理中完成的代理模式在java代码中,代理模式分为静态代理和动态代理...原创 2019-06-05 17:32:45 · 491 阅读 · 0 评论 -
Android 组件化 (一)之入门介绍
Android 组件化一、组件化1.1 说明 随着我们项目的迭代,我们的功能模块回逐渐增多,业务逻辑有最初的不复杂逐渐变的复杂,业务模块的增多,有经验的人肯定回尽量的去符合“高内聚 低耦合“,但是项目的迭代往往是在最初无法预估发展方向的,这时,还要坚持“高内聚 低耦合“的原理,就要不断的对代码进行重构,重构是需要花费很多时间、精力、人力的,这时我们应该在迭代的时候寻求最小的...原创 2018-06-14 15:39:25 · 381 阅读 · 0 评论 -
Flutter 框架、基础介绍
Flutter 是由零散的组件组成的,组件就和平时Android开发中看见的控件是一样的,相当于ImageView\TextView 等,在使用Flutter 之前,有必要了解Flutter的组件,上一篇Mac pro 搭建Flutter 开发环境和第一个Flutter程序 在项目路径下的lib文件夹下的main.dart文件 就是我们要写Flutter代码文件,import ...原创 2018-04-20 16:56:43 · 1122 阅读 · 0 评论 -
自定义获取WI-FI列表及相关设置
在获取Wi-Fi列表的时候得获取Wi-Fi管理类Wif iManager原创 2017-06-22 23:55:43 · 1047 阅读 · 0 评论 -
获取网络请求的图片的宽高
在开发中,加入我们的使用的图片来自网页,没有人知道它的大小,这时我们还怎么做呢?图片的大小我们可以让后台给我们指定一下,为什么呢? 因为如果我们不指定图片的大小而是使用加载图片的组件的适配去做,会出现有时候的图片的大小和我们指定的图片大小和缩放的规则错差特别大,出现图片被拉伸或者是压缩的图片,为什么说来自网页的图片会不好计算大小呢?其实不管怎么杨的图片 都可以,并且使用之前不知道所以组件的大小原创 2017-08-09 17:38:21 · 1209 阅读 · 0 评论 -
DataBinding 使用方式
就说是自己安逸了两年,这么长时间了,我一直在逃避现实,总觉得有些东西没错,直到今天。。。。就关于android查找组件等的注解时,一直以为findViewById() 是最好的选择,也看过其他相关的注解的东西,观其内部实现原理是发现用的大多数是反射之类的,在组件多的时候难免会在程序运行的时候带来难点,今天看了15年I/O大会推荐的DataBinding 这个与其说是注解,倒不如说是将数据层和Vie原创 2017-08-03 23:08:26 · 335 阅读 · 0 评论 -
Android 性能优化
Android 性能优化一、电量电量当然是我们在开发的移动应用中必须要做处理的部分,因为谁都不希望自己的移动设备因为安装了你的应用而大大缩短了自己的待机时间,当然长连接电源的就不用考虑了,因为它从来不会考虑没电的情况,就比如盒子,所以我们要进行电量的优化,要做优化我们必须知道应用电量的消耗,我们如果自己去创造一写代码在我们的应用中去监听电量的消耗,那肯定是不行的,因为它就是一个耗电的东西了,最好是依原创 2017-08-25 11:04:15 · 200 阅读 · 0 评论 -
CheckStyle 简记
CheckStyle是一个很针对于java语言的代码规范检查工具,默认的情况下,遵循Google的Java编码规范和Sun编码规范,同时它可以自己配置,这就为在不同的团队可以根据自身的情况对检查规则进行裁剪或者新增,Gradle 方式根据CheckStyle 的官方文档进行检查规则的配置,主要有两个配置文件,checkstyle.xml 检查规则配置文件suppressions.xml 工程中某原创 2017-09-05 15:47:57 · 343 阅读 · 0 评论 -
Android截屏与WebView长图分享经验总结
本文转载 Android开发中文站 » Android截屏与WebView长图分享经验总结(Android%E5%BC%80%E5%8F%91%E4%B8%AD%E6%96%87%E7%AB%99%20%C2%BB%20Android%E6%88%AA%E5%B1%8F%E4%B8%8EWebView%E9%95%BF%E5%9B%BE%E5%88%86%E4%BA%AB%E7%BB%8F%E9%A转载 2017-08-23 18:32:46 · 478 阅读 · 0 评论 -
《Android 高级进阶》 --> APP 整体框架
一、APP 的整体架构从较高的层次来讲,APP的整体架构可以分为两层,即应用层和基础框架层,应用层:专注与行业领域的实现,eg:金融、支付、地图导航、社交等,他直接面对的是用户,是用户对产品的第一层感知。基础框架层:专注与技术领域的实现,提供API公有的特性,避免重复制造轮子,是用户对产品的第二感知,eg:性能、稳定性等。一个理想的APP应该是具有清晰的层次划分,同一层模块间进行解耦,模块内部原创 2017-08-29 11:55:38 · 2016 阅读 · 0 评论 -
当程序遇到Crash的时候
转载请注明图你怀中安稳 在开发中我们最不想看见的应该是Crash了,当我们的程序上线,投放到市场的时候,用户会去使用我们的软件,这时,我们更加不希望我们的应用程序会Crash,当然在开发中,我们要是遇见可控的Crash,我们会立马解决,但是Android程序不知道为什么?有的Crash是不能被测试出来的,这时我们当然不能修改了,只有当它发生Crash的时候才能知道哪里出现了问题,但是这时我们不会等原创 2017-08-25 12:27:39 · 1674 阅读 · 0 评论 -
Bitmap 二次采样三级缓存
一、Bitmap1.1 Bitmap 图片,加载的方式一般有四种 方法名 说明 BitmapFactory.decodeByteArray() 从字节数据中加载 BitmapFactory.decodeFile() 从文件中加载 BitmapFactory.decodeFileDescriptor() 从“文件描述“中加载 BitmapFactory.decodeR原创 2017-08-30 14:55:37 · 609 阅读 · 0 评论 -
Mac Pro 下MySql的安装及配置使用
一、安装:https://dev.mysql.com/doc/refman/5.6/en/osx-installation-pkg.html 到这个网址下载,下载之后点击安装(傻瓜式安装), 为什么我要写这篇博客记录下来呢?重点不是它的安装,而是我遇到了一些问题,二、配置打开终端 打开配置 输入:.bash_profile 输入:export PATH=${PATH}:/usr/loca原创 2017-08-31 12:34:57 · 4248 阅读 · 0 评论 -
Android 组件之ViewFlipper
ViewFlipper和ViewPager 的区别及作用ViewFlipper和ViewPager 都是一个切换控件,一般用来切换图片资源,用于轮播以及binder展示,ViewPager大家都很熟悉 ,可以展示本地图片也可展示网络图片,说所以说很牛逼,这个ViewFlipper相比较ViewPager 同样可以完成,并且也能添加动画,最主要的是使用相当简单,就比如说是轮播一句代码就搞定,(以下所有原创 2017-10-12 15:18:27 · 418 阅读 · 0 评论 -
Android Studio 中使用真机测试 你还在连接好几个数据线吗?
相信做开发的朋友我们在使用AS 开发的时候会使用真机测试,我们有时候会在电脑上连接2个或者3个手机去调试,就需要三个数据线去连接,今天介绍一个插件,可以Wi-Fi连接,一、打开AS 中的输入Android WiFi ADB 点击插入,重启AS,你会发现多一个图标 这时连接手机,点击右侧 Android WiFi ADB 查看state 为Connected ,这时就可以拔掉数据线 ,并且建立原创 2017-10-30 10:49:11 · 1574 阅读 · 0 评论 -
Android 项目更换头像(拍照和选择相册)
之前开发项目的时候一直没有做更换头像这一块,因为开发的东西很少有需要用户进行登录的,最近比较闲,记录一下修改头像这一块, 就不说需求了 看图 场景很简单,也符合更换头像的需求描述:点击头像 ,弹出菜单 选择拍照、相册选择、取消使用语言kotlin 语言 菜单使用popupWindow ,先上菜单布局<?xml version="1.0" encoding="utf-8"?><Relative原创 2017-11-01 14:14:57 · 2344 阅读 · 0 评论 -
使用Kotlin实现百思不得姐弹出菜单
最近学习kotlin ,kotlin 确实是一门非常nice的语言,从它的书写到它的语法,都有吸引人的地方,学习一门新的语言就是运用正门语言了,为了学习kotlin ,仿写百思不得 姐 ,今天将不得姐的弹出菜单记录一下,先看一下效果 好了 下面使用kotlin 完成一下 一、实现思路就使用最简单的思路,首先将它用普通布局搭建出来,在加入动画,就可以完成了,OK ,kotlin 基本上百分之九十和原创 2017-11-17 18:25:20 · 1773 阅读 · 1 评论 -
Flutter 之 ColorBook 主题设计
This cookbook contains recipes that demonstrate how to solve common problems while writing Flutter apps. Each recipe is self-contained and can be used as a reference to help you build up an applica...原创 2018-04-23 12:31:45 · 1141 阅读 · 0 评论 -
开发中经常用到的工具类
在开发中,我们经常会用到一些开发工具类,比如网络请求(当然,网络请求有成熟的框架,在一些大的项目中确实有可用之处,但是在小项目中用框架的话就有点“杀鸡用了杀牛刀了”),所以我们会写一些功能少的框架,再比如说在开发中我们会为了开发的简单,代码易修改和易添加,对代码的重构有很大的帮助1、在mvc / map 这种开发模式中,model层也就是数据层,一般小的项目中,在android中不会有原创 2017-06-29 22:06:57 · 656 阅读 · 0 评论