自定义通知栏,就会面临根据背景色展示不同的颜色的通知栏布局。网上也有很多教程,但是都会面临一个问题那就是Android 7之后就失效了,主要原因是Notification.contentView为空。那怎么解决这个问题呢?
自定义通知栏,就会面临根据背景色展示不同的颜色的通知栏布局。网上也有很多教程,但是都会面临一个问题那就是Android 7之后就失效了,主要原因是Notification.contentView为空。那怎么解决这个问题呢?
为了界面的美观有时候需要隐藏ScrollView、RecyclerView、ListView等滚动条和去掉滑动到边界阴影,下面我就列举一下解决方案供大家参考。 1、ScrollView的属性设置 设置滑动到边缘时无效果模式: android:overScrollMode="never" 设置滚动条不显示: android:scrollbars="none" 以下是整体设置 <ScrollView android:id="@+id/homeScrollView" android:layout_width="ma…
Android Studio 3.4 更新了,带出来很多亮眼的功能,这里就不多说了,想详细了解的朋友去Android官网查看https://developer.android.com/studio/releases/。 其中有一项是启用了R8: R8在一步中集成了desugaring,收缩,混淆,优化和dexing,从而 显着提高了构建性能。R8是在Android Gradle插件3.3.0中引入的,现在默认为使用插件3.4.0及更高版本的应用程序和Android库项目启用。 广点通(最新版本GDTUnionSDK…
java.version Java运行时环境版本 java.vendor Java运行时环境供应商 java.vendor.url Java供应商的 URL java.home Java安装目录 java.vm.specification.version Java虚拟机规范版本 java.vm.specification.vendor Java虚拟机规范供应商 java.vm.specification.name Java虚拟机规范名称 java.vm.version Java虚拟机实现版本 java.vm.ven…
现象 安装应用的时候会提示安装失败,提示信息是INSTALL FAILED CONFLICTING PROVIDER,如下图所示: 究其原因 根据英文我们可以直观的知道因为provider的问题,在Android中provider的authority要求必须是唯一的,比如你在定义一个provider时需要为它指定一个唯一的authority。如果你在安装一个带有provider的应用时,系统会检查当前已安装应用的authority是否和你要安装应用的authority相同,如果相同则会弹出上述警告,并且安装失败。 …
最近AndroidStudio升级到3.3版本,Android的Gradle plugin升级到了3.3.0,构建版本的时候出现一些警告。 WARNING: API 'variant.getGenerateBuildConfig()' is obsolete and has been replaced with 'variant.getGenerateBuildConfigProvider()'. It will be removed at the end of 2019. For more information…
在采用Gradle构建Android项目时候出现如下错误信息: Executing tasks: [:app:assembleRelease] Configuration on demand is an incubating feature. NDK is missing a "platforms" directory. If you are using NDK, verify the ndk.dir is set to a valid NDK directory. It is currently set to …
前言 无规矩不成方圆,按规矩办事都有好的结果。Android也有自家的一套规则,其中Icon就是有诸多规则,这些还是要遵循的,不为别的,就是大家都在按章就你搞特殊化,后果真的要自负。虽然这个规则一变再变,但因出师有因——人的审美再变。 关于异形图标和规则图标的取舍,在不同阵营的 Android 用户之间一直存在着争议。而一向提倡使用异形图标、讲求图标「个性」的 Google 在 Android 7.1 中引入了圆形图标规范,在 Android 8.0 中还将带来全新的自适应图标特性——Google 似乎想通过应用图…
从图中,我们可以看到从Lanucher启动Activity会至少涉及3个进程,其中ActivityManagerService则是其中的纽带。 主要说明: 1. AMS进程 ActivityManagerService:Activity管理机制的服务器端,属于一个系统服务。用于管理activity的各种行为,控制activity的生命周期,派发消息事件,低内存管理等等。实现了IBinder接口,可以用于进程间通信。 ActivityStack:为了让这许多 Activity协同工作而不至于产生混乱,Android平…
遇见问题 最近在res/raw目录下放入了大文件(200M),rebuild出现错误编译通过不了。 编译环境如下: project的build.gradle // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { repositories { google() jcenter() } dependencies { classpath 'com.a…
1. 前言 2015年以来,Android开发领域里对热修复技术的讨论和分享越来越多,同时也出现了一些不同的解决方案,如QQ空间补丁方案、阿里AndFix以及微信Tinker,它们在原理各有不同,适用场景各异,到底采用哪种方案,是开发者比较头疼的问题。本文希望通过介绍QQ空间补丁、Tinker以及基于AndFix的阿里百川HotFix技术的原理分析和横向比较,帮助开发者更深入了解热修复方案。 2. 技术背景 2.1 正常开发流程 在正常软件开发流程中,线下开发->上线->发现bug->紧急修复上线…
1. 前言 Instant Run,它是Android Studio2.0以后新增的一个运行机制,能够显著减少你第二次及以后的构建和部署时间。简单通俗的解释就是,当你在Android Studio中改了你的代码,Instant Run可以很快的让你看到你修改的效果。而在没有Instant Run之前,你的一个小小的修改,都肯能需要几十秒甚至更长的等待才能看到修改后的效果。 其实,Instant Run这个技术是基于Transfrom-API技术。Android Gradle 工具在 1.5.0 版本后提供了 Tra…
1. 前言 动态编译技术在开源框架中的应用非常的广泛,现在市面上的插件化框架,热修复框架几乎都使用了动态编译技术,原理几乎都是在编译期间动态的在class文件中注入代码或者或修改。那就让我们来了解一下这高大上的技术吧。 2. 揭开动态编译的神秘面纱 揭开动态编译的神秘面纱只需三步: 自定义Gradle插件 介绍Transform API 及 实现步骤 实现在编译的过程中操作.class文件,对原有代码或者说逻辑进 行一些处理,修改原class代码和动态生成java类 3. 案例demo 插件目录结构: 3.1 自定…
1. 前言 Android Studio 项目是使用 Gradle 构建的,构建工具 Gradle 可以看做是一个脚本,包含一系列的Task,依次执行这些 Task 后,项目就打包成功了。 而 Task 有一个重要的概念,那就是 inputs 和outputs 。 Task 通过 inputs 拿到一些东西,处理完毕之后就输出 outputs ,而下一个 Task 的 inputs 则是上一个 Task 的outputs。 例如:一个 Task 的作用是将 java 编译成 class,这个 Task 的 inp…
1. 简述 热修复技术可谓是百花齐放,微信的Tinker、QQ空间的Nuwa、饿了么的Amigo、美团的Robust等等,各个热修复方案争相发布,都声称自己可以做到全方位全功能的热修复。不过他们各自有自身的局限性,或者不够稳定,或者补丁过大,或者效率低下,或者使用起来过于繁琐,大部分技术上看起来似乎可行,但实际体验并不好。 终于在2017年6月11日,手淘技术团队联合阿里云正式发布了新一代Android移动热修复方案——Sophix。Sophix的核心设计理念,就是非侵入性。Sophix这个名字,是来源于Sophi…
QQ群:179730949
QQ群:114559024
欢迎您加入Android大家庭
本人QQ:136049925
赐我一丝安慰
给我一点鼓励