android小菜
文章平均质量分 75
android的相关技术,问题记录
MakerGaoGao
每个人都在前往未来的路上,只是有的人在走,有的人在跑
展开
-
一文了解DataStore(Proto)
本篇主要介绍Proto DataStore的内容。如果还不了解DataStore,请参考上篇一文了解DataStore(Preferences)本篇会涉及到Protocol Buffers相关的内容,如果不太了解,可以查资料作以了解。在protobuf闭包内添加如下配置,则生成的文件会在响应的目录,如"$projectDir/src/main"会在目录src/main/debug/java/包名/下生成$projectDir}...原创 2022-08-06 10:00:00 · 679 阅读 · 1 评论 -
一文了解DataStore(Preferences)
本篇主要介绍DataStore,包含介绍,使用等。本篇会介绍DataStore两种实现Preferences DataStore(主要介绍)和Proto DataStore(后续介绍)。本篇也会介绍到DataStore和SharedPreferences的不同之处,以及如何进行迁移。首先,DataStore是Jetpack一部分,是一种数据存储解决方案。其次,DataStore使用协程及flow以异步、一致的方式实现数据的存储。......原创 2022-08-05 08:00:00 · 797 阅读 · 0 评论 -
【Koltin Flow(五)】SharedFlow及StateFlow
相对于Flow而言,SharedFlow为热流,也就是说不管有无接收者,都会发送值。和SharedFlow一样,StateFlow也是热流,但是区别在于状态的保存,保存了最新的值,也就是新的接收者会收到最新的值,和设置了replay = 1的SharedFlow比较类似。本篇主要介绍了SharedFlow和StateFlow的基本使用、以及参数设置相关内容。本篇也终点介绍了shareIn操作符的使用,以及各种策略参数的设置,stateIn类比shareIn理解。......原创 2022-08-04 20:00:00 · 958 阅读 · 0 评论 -
【Koltin Flow(四)】Flow背压
本篇主要介绍背压相关的内容,如背压的产生、处理方式等。本篇将介绍背压相关的操作符,如buffer等。本篇主要介绍了flow背压产生的原因、通俗类似于水流的理解方式。本篇介绍了flow的处理优化方式,主要操作符围绕buffer展开。本篇为自己学习及使用过程中的总结,难免存在错误或思维局限,欢迎大家讨论指正。......原创 2022-08-03 20:00:00 · 512 阅读 · 0 评论 -
【Koltin Flow(三)】Flow操作符之中间操作符(三)
本篇主要介绍中间操作符的功能性操作符以及一些其他操作符。如果对其他的操作符或者flow基本知识不太了解,可参考目录的其他篇内容作为参考。本篇主要介绍了一些功能性操作符,如retry等。buffer、conflate这两个操作符主要和背压部分相关,在背压的部分作以展开说明。其他操作符,主要做了下分类说明,因为牵扯到其他大块的内容,在其他的部分作以补充。.........原创 2022-08-02 20:00:00 · 327 阅读 · 0 评论 -
【Koltin Flow(三)】Flow操作符之中间操作符(二)
本篇主要介绍的有组合操作符、回调操作符,也会涉及一些其他的操作符。【KoltinFlow(一)】五种创建flow的方式【KoltinFlow(二)】Flow操作符之末端操作符【KoltinFlow(三)】Flow操作符之中间操作符(一)本篇主要介绍了两个部分操作符,分别为合并操作符和回调操作符。合并操作符,主要实现多个flow的一些合并、展平等操作;回调操作符,主要在flow执行的特定阶段回调展示或处理操作。本篇为自己学习及使用过程中的总结,难免存在错误或思维局限,欢迎大家讨论指正。............原创 2022-08-01 18:45:00 · 655 阅读 · 0 评论 -
【Koltin Flow(三)】Flow操作符之中间操作符(一)
flow的中间操作符比较多,根据作用大概可以分为几个类,如变换操作符、过滤操作符等。本篇主要介绍的有变换操作符、过滤操作符、也包含其他的一些操作符。【KoltinFlow(一)】五种创建flow的方式【KoltinFlow(二)】Flow操作符之末端操作符本篇主要介绍了中间操作符的一部分,其他的在下一篇继续介绍。本篇设计到中间操作符的两类操作符,分别为变换操作符、过滤操作符。操作符本身的理解并不难,只要总结起来结合具体的代码去理解就会比较容易。...........................原创 2022-08-01 10:43:26 · 807 阅读 · 0 评论 -
【Koltin Flow(二)】Flow操作符之末端操作符
本篇主要介绍flow的操作符部分,想要了解flow的创建,可以参考上一篇【KoltinFlow(一)】五种创建flow的方式Flow操作符主要分为末端操作符和中间操作符,本篇主要介绍末端操作符。本篇会介绍各类操作符的作用和使用方式,当然操作符比较多,也不会全面覆盖,会选择终点进行讲解。.....................原创 2022-07-29 11:08:49 · 1074 阅读 · 0 评论 -
【Koltin Flow(一)】五种创建flow的方式
flow是序列的异步版本,这是一种收集类型,其中的值是逐个生成的。与序列一样,只有需要某个值时,flow才会根据需要生成该值,而且flow可以包含无限数量的值。简单来说就是流式处理,用过Rx的会比较容易理解。flow通过api和协程支持,处理响应式编程更方便。本篇主要介绍flow的基础创建部分,介绍了五种方式,因为内容比较简单,介绍比较少,直接上代码也比较好理解。............原创 2022-07-28 17:13:51 · 557 阅读 · 0 评论 -
安装调试报错:The application could not be installed: INSTALL_FAILED_USER_RESTRICTED
错误描述:手机调试安装应用不能成功,完整报错如下:Installation did not succeed.The application could not be installed: INSTALL_FAILED_USER_RESTRICTEDList of apks:[0] ‘D:\Android_WS\Trip\app\build\intermediates\apk\flavors_dev\debug\Trip.apk’Installation via USB is disabled.原创 2022-05-18 16:55:47 · 9552 阅读 · 2 评论 -
andrioid11打开其他应用的正确姿势
简介介绍此篇文章主要在应用内打开其他应用的正确姿势的基础上解决android11的适配问题,具体的打开代码此处不再赘述,可参考应用内打开其他应用的正确姿势参考文档谷歌开发者android11上遇到的问题:打电话、打开地图等找不到相关的应用原因:主要是android11的管理软件包可见性变更解决方案1(不推荐,Google市场会限制):<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"原创 2022-05-05 17:15:38 · 1906 阅读 · 1 评论 -
Android开发获取系统通知开启状态及跳转设置
前言在App开发中有时候需要知道app通知的系统设置是否开启,来进行相关的展示,与跳转系统设置的操作。方案在比较早的版本之前,系统没有相关的api进行直接的操作,需要通过反射的方式去进行操作。但是现在已经不需要了,直接调用系统的api进行操作即可。代码解决判断是否开启状态,直接调用系统api,开启返回true,未开启返回false。NotificationManagerCompat.from(this).areNotificationsEnabled();跳转app详情页进行设置原创 2021-01-14 15:46:11 · 839 阅读 · 0 评论 -
水滴屏等异形屏的状态栏处理问题
问题水滴屏等异形屏在启动页状态栏出现黑边的问题。theme配置项如下 <style name="MyFullScreenTheme" parent="Theme.AppCompat.Light.NoActionBar"> <item name="android:windowNoTitle">true</item> <item name="android:windowFullscreen">true</item>原创 2021-01-13 14:38:44 · 1346 阅读 · 0 评论 -
状态栏Theme相关配置
前言目前说起来大部分App都会设置状态栏和目前App想配套的颜色,或者内容直接深入状态栏部分。另外鉴于目前设备版本基本都到了5.0 6.0之上 所以之前的版本不做考虑。设置概览目录分为values、values-v23,其中values-v23 主要解决白色背景时候的状态栏字体颜色问题。values的style 相关 <style name="customTheme" parent="AppTheme"> <!-- 5.0之前为tr原创 2020-11-12 14:27:25 · 410 阅读 · 0 评论 -
撸一个开源网络库
前言 之前工作的很多时候都是拿来主义,开源库一大堆,总有一款适合你的,但是往往导致很多时候出现问题不好定位,对于一些底层的业务根本不熟悉,技能无法提升。在此背景下决定撸一款网络请求库,一方面为了使用方便,另一方面也能更认识网络请求的各个细节,提升自己当然因为一些思维局限性,难免会存在考虑不周等问题,希望多多理解,后续肯定继续努力。正文开始说明此处为了测试自己撸了个网络测试服务,具体见博客,相关博客连接如下:自己撸一个网络测试服务网络库介绍库名及功能:Simple的子库Net库,原创 2020-09-30 10:25:02 · 3533 阅读 · 0 评论 -
Android Jetpack之DataBinding(三)
前言本文是在前文的基础上继续深入DataBinding的使用这一块,如果有不懂的地方,请移步上一篇Android Jetpack之DataBinding(一)Android Jetpack之DataBinding(二)DataBinding使用之绑定适配器绑定适配器负责发出相应的框架调用来设置值。如setText()、setOnClickListener()等,同时适配器绑定库允许自定义方法、逻辑、和返回值类型等操作。1. 设置特性值、自动选择方法:只要绑定的值放生改变,生成的绑定类就会调原创 2020-05-19 18:17:12 · 631 阅读 · 0 评论 -
内存泄漏问题记录:ReportFragment was never GCed but no leak found
问题情况使用内存检测leakcanary进行相关检测。页面返回时候报错内存如下:ReportFragment was never GCed but no leak found问题分析不是常规的内存泄漏,常规应该报错泄漏引用链。一脸懵逼,不知道。因为在页面中使用了time和timertask相关操作,所以怀疑是这两个捣的鬼。问题解决因为刚开始直接报出了泄漏引用链,time和timertask捣的鬼,进行相关操作如下:Lifecycle检测,在onDestroy的时候进行关闭操作:原创 2020-05-14 15:37:07 · 4359 阅读 · 0 评论 -
kotlin之GlideApp无法生成问题
kotlin-kapt插件支持Android的注解处理1、配置kotlin-kapt插件apply plugin: 'kotlin-kapt'2、替换注解依赖implementation 'com.github.bumptech.glide:glide:4.9.0'kapt 'com.github.bumptech.glide:compiler:4.9.0'...原创 2019-10-17 12:00:17 · 577 阅读 · 0 评论 -
TextView使用技术点(一)
TextView作为开发时候显示最常用的控件之一,我们使用的频率是非常高的,但是我们平时的使用都是怎么使用的那些相关的属性和方法呢?内容:setText()字体:TextSize、TextColor宽度和高度:width、weigth边距:margin、padding背景:background......常用的基本也就这些吧。虽然基本都用,但是我们真的了解这些属性和原创 2017-04-18 11:46:11 · 10414 阅读 · 0 评论 -
TextView使用技术点(二)
TextView作为开发时候显示最常用的控件之一,我们使用的频率是非常高的,承接上一篇:TextView使用技术点(一),除此之外还有那些的方法值得我们研究呢?1、基本的字体颜色设置2、变化字体颜色设置3、隐藏内容颜色等设置4、特殊格式的相关设置(网址、电话等)下面来一一解决:1、基本的字体颜色设置: mTxt1.setTextColor(Color原创 2017-06-06 16:50:40 · 453 阅读 · 0 评论 -
Android6.0动态权限申请
从 Android 6.0(API 级别 23)开始,用户开始在应用运行时向其授予权限,而不是在应用安装时授予。此方法可以简化应用安装过程,因为用户在安装或更新应用时不需要授予权限。它还让用户可以对应用的功能进行更多控制;例如,用户可以选择为相机应用提供相机访问权限,而不提供设备位置的访问权限。用户可以随时进入应用的“Settings”屏幕调用权限。 系统权限分为两类:正常权限和原创 2017-06-19 16:26:02 · 749 阅读 · 0 评论 -
应用内打开其他应用的正确姿势
在Android开发的过程中,不可能需要的时候都自己开发,往往通过打开其他的应用实现需要的效果,如拍照、发短信、发邮件、拨号等等。那么我们如何打开其他的应用呢?这个简单,打电话: Intent intent = new Intent(); intent.setAction(Intent.ACTION_DIAL); Uri uri = Uri.pars原创 2017-06-27 15:15:17 · 3182 阅读 · 0 评论 -
让别的应用打开你的Activity怎么玩
承接上一篇应用内打开其他应用的正确姿势,我们已经能在我们的应用内打开指定功能的应用的Activity,这次我们就让别的应用打开我们的应用玩玩。分析:在我们的应用内打开其他的应用是隐式的Intent意图来实现,那我们如果想让别人打开我们的应用应该怎么做呢?其实我们要做的也很简单,就是告诉系统我们能处理这个隐式的意图就可以了。话不多说,开始撸代码:就以打开图片为例吧,我们在文件管理原创 2017-06-28 10:56:59 · 2969 阅读 · 0 评论 -
Android折线图、饼状图
Android图表本文记录自身学习状态,也为初学者提供方便,高手可以避让撸代码去。先看下运行效果:这块的折线图、饼状图采用的是hellochart,开源库,github地址:https://github.com/lecho/hellocharts-android 实现步骤如下:1、下载jar包 ,在github上下载jar包到本地,复制到项目libs目录下并添原创 2016-08-05 14:22:56 · 2419 阅读 · 3 评论 -
Android自定义View时钟效果
今天继续聊自定义View,当然今天的这个比较麻烦一些,如果没有自定义View的经历,建议先看看自定义文字View与水印图片View自定义文字View自定义水印图片View前面的自定义文字View,图片View都属于比较简单的自定义View,今天玩点有难度的,当然目的也是为了更加熟悉自定义View的各个步骤与坐标的计算、画笔的各种属性等。话不多聊 ,我们今天实现下如下的效果:首原创 2017-02-23 17:09:01 · 3838 阅读 · 2 评论 -
Android自定义View之绘制、测量
自定义View对于很多新手来说都是谈之色变,当然我也不例外,但是在某些情况下需要更加炫酷的效果,更加人性化的体验还是不得不自己去撸一些特定的View出来。自定义View是我们进阶路上的拦路虎,使我们进阶必备的技能之一。本文主要是记录自身的学习,同时指导新手的学习,高手请避让撸代码去本文就从自定义最基础的部分开始聊起。自定义View包含的主要内容如下:1)自定义属性。2)测量(o原创 2017-02-09 15:30:29 · 690 阅读 · 0 评论 -
Android开发自定义水印图片
上一篇的自定义View中的测量绘制 http://blog.csdn.net/jinjin10086/article/details/54947301在此基础上,本次在此基础上继续进行学习。本次的目标是在上一篇的基础上给普通的图片加上水印,实际的应用如csdn上传图片、微信公众号上传图片,都会自动给图片加上水印,当然本次只是给加上水印,可设置水印的颜色,内容,规格大小(small为14号字原创 2017-02-10 11:42:43 · 2399 阅读 · 0 评论 -
AndroidStudio百度地图定位功能的集成
本文为本人学习笔记,只是记录本人所学,同时能引导新手,高手请避让回去撸代码去废话不说,开始撸代码集成百度地图定位:1、上百度地图开发者平台去注册账号,同时认证开发者身份。进入注册和认证2、在开发者平台创建你的APP,拿到Key:完成之后即可拿到你的key3、进行相关的下载和拷贝这块有需要的代码下载,下载下来的开原创 2015-12-18 10:29:26 · 2947 阅读 · 0 评论 -
AndroidStudio集成极光推送
本人学习笔记,新手可以学习,高手请避让撸代码去废话不说,开始撸代码。1、去激光推送官网去注册账号,认证身份。https://www.jpush.cn/2、点击创建应用创建自己的应用。根据需要的信息进行信息的完善完成之后点击穿件我的应用即可完成创建。3、下载Demo,点击自己创建的应用信息,点开如下如 点击下载可下载相关的Demo。4、原创 2015-12-31 16:17:10 · 3189 阅读 · 3 评论 -
Android AIDL简单实现(Android Studio环境)
简单实现 AIDL(进程间通信)aidl应用场景,因为安卓不同的应用运行在不同的进程,不能共享内存。当一个项目实现某一部分功能时依赖于另一个项目时候我们就可以用aidl来实现。下面实现一个模拟远程的登陆操作,登陆成功返回用户信息,登陆失败返回错误信息。正确的用户名:user,密码:123456实现方式:先建立客户端或者服务端都可以,但是两个AIDL文件的包名等必须完全一致。原创 2016-08-03 10:29:44 · 750 阅读 · 0 评论 -
微信分享的原生集成
分享集成现在的APP大都会包含分享部分,分享的集成平台也很多,如SharedSDK,友盟等等,但是这些分享都是统一实现差异化分享,进行多方的差异化配置进而实现相关的分享,但是我们开发时候有时候只需要进行最常用的微信分享就可以实现,所以学习原生的分享集成是有必要的,另外原生的分享由于实现特定的平台分享,集成包也比较小,有利于我们的APP实现瘦身,下面开始介绍分享的实现。1,微信开放平台进行a原创 2016-11-26 15:50:56 · 1129 阅读 · 0 评论 -
安卓开发规范参考
Android开发规范V1.0一、命名规范:1、简介:总体命名都为英文字母拼接而成,对于常见的大家习以为常的单词可以采用 缩写形式,如常见的URL,BUF等,较长的单词可以取全面几个字母形成缩写。驼峰命名法:第一个单词的首字母小写,其余单词的首字母大写。大驼峰命名法:每个单词的首字母都大写。下划线命名法:每个单词用下划线间隔开。2、具体命名:1)包名:采用四级包名形原创 2016-12-05 10:08:09 · 651 阅读 · 0 评论 -
Android设计模式之状态模式
作为一枚苦逼的程序猿,在平时的开发任务中往往会遇到这样的情形,同一个方法在不同的情况下要进行不同的操作,如打电话的方法,在正常情况下是打电话,但是在飞行模式下就是不能使用的,如同样是空调的调节温度的方法在没有开电源的情形下也是不能使用的吧,等等诸如此类的问题,我们当然想到了在每次操作的时候进行先决条件的判断,下面以空调为例,我们来看如下代码:package com.demo.admin;原创 2016-12-11 17:18:02 · 909 阅读 · 0 评论 -
AndroidStudio插件推荐
AndroidStuio,是一个Android开发环境,基于IntelliJ IDEA. 类似 Eclipse ADT,Android Studio 提供了集成的 Android 开发工具用于开发和调试。这个工具提供类更为强大的功能,能让你的开发效率蹭蹭地飞起。如Android 专属的重构和快速修复,提示工具以捕获性能、可用性、版本兼容性等问题,支持ProGuard 和应用签名,功能强原创 2016-08-17 10:08:21 · 705 阅读 · 0 评论 -
AndroidStuido环境篇一(AndroidStudio环境)
Android开发是建立在java基础上,所以要配置android环境,必须先进行Java环境的配置,配置Java环境(JDK)如下:1)JDK下载(下载时注意区分32与64位操作系统):下载地址(官方): http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html下载地址(安卓常用开...原创 2016-12-05 09:54:26 · 833 阅读 · 0 评论 -
Android环境篇二(Eclipse+ADT环境)
Android开发是建立在java基础上,所以要配置android环境,必须先进行Java环境的配置,配置Java环境(JDK)同上篇。 下面介绍Eclipse+ADT的环境安装配置:1、eclipse下载:下载地址(官方,选择Standard版即可):http://www.eclipse.org/downloads/下载地址(Androi原创 2016-12-05 09:57:41 · 363 阅读 · 0 评论