Android开发
文章平均质量分 74
IT-Oliver
这个作者很懒,什么都没留下…
展开
-
Android 权限
android.permission.EXPAND_STATUS_BAR允许一个程序扩展收缩在状态栏,android开发网提示应该是一个类似Windows Mobile中的托盘程序android.permission.FACTORY_TEST作为一个工厂测试程序,运行在root用户android.permission.FLASHLIGHT访问闪光灯,android开发网提示HTC Dream不包含闪光灯android.permission.FORCE_BACK允许程序强行一个后退操作是否在顶层act...原创 2021-09-28 10:30:29 · 176 阅读 · 0 评论 -
Android Intent常用flags
1、FLAG_ACTIVITY_NEW_TASK:根据Activity 的affinity(一个app系统默认affinity的值为包名,task自身的affinity的值取决于根activity的affinity,相同affinity的activity属于同一个task)寻找task 栈,如果一个task 的 affinity与 activity 的 affinity的相同,则Activity会压入栈中。如果没有找到相同的,则新建立栈,并且把activity压入栈中。2.FLAG_ACTIVITY_C原创 2021-08-05 14:07:31 · 955 阅读 · 0 评论 -
Android 闹钟服务AlarmManager
一、通常我们实现定时任务有三种方式: Timer,有一个明显的问题,它并不太适合用于需要长期在后台运行的定时任务。我们都知道,为了能让电池更加耐用,每种手机都会有自己的休眠策略,Android手机就会在长时间不操作的情况下自动让CPU进入睡眠状态,这就有可能导致Timer中的定时任务无法正常运行。 Hnadler,Handler的postDelay方法也可以实现定时操作,它同样也是不靠谱的,因为默认Hnadler依赖于线程(main线程或者子线程),所以只要进程被杀死,所...原创 2021-08-02 13:06:23 · 642 阅读 · 0 评论 -
Android 获取屏幕宽高
获取屏幕宽高的方法如下:方法一: WindowManager wm = (WindowManager) this.getSystemService(Context.WINDOW_SERVICE); int width = wm.getDefaultDisplay().getWidth(); int height = wm.getDefaultDispl...原创 2020-04-30 09:07:38 · 1872 阅读 · 0 评论 -
Android PorterDuff.Mode
做过图形图像处理coding的Android程序员一定用过或了解过PorterDuff.Mode这个枚举变量中的某些值,对此了解不多理解不深刻的时候是不是会很纠结到底该用那个模式呢?至少不能快速准确地用到恰当的模式,那么PorterDuff.Mode究竟是什么,它的各个枚举值有什么作用呢?这里我整理一下笔记,加深理解。PorterDuff.Mode是什么public Xfermod...原创 2020-04-28 11:53:35 · 396 阅读 · 0 评论 -
Android最常用第三方框架
分类 二级分类 框架名称 简介 UI 刷新 SmartRefreshLayout 智能下拉刷新框架 UI 刷新 Android-PullToRefresh 比较早的一款下拉刷新框架 UI 刷新 android-Ultra-Pull-To-Refresh 下拉刷新框架 UI 刷新 BeautifulR...原创 2020-02-11 11:31:25 · 1372 阅读 · 0 评论 -
Android 沉浸式开发
目录一、前言二、5.0沉浸实现三、6.0状态栏文字颜色变化四、fitsSystemWindows一、前言 从Android5.0开始,加入了一个重要的属性和方法android:statusBarColor(对应方法为 setStatusBarColor),通过这个方法我们就可以轻松实现沉浸式。也就是说,从Android5.0开始,系统才真正的支持沉浸式,所以...原创 2019-10-23 17:18:46 · 1164 阅读 · 0 评论 -
Android RxJava操作符详解 系列:组合 / 合并操作符
前言Rxjava,由于其基于事件流的链式调用、逻辑简洁 & 使用简单的特点,深受各大 Android开发者的欢迎。如果还不了解 RxJava,请看文章:Android:这是一篇 清晰 & 易懂的Rxjava 入门教程RxJava如此受欢迎的原因,在于其提供了丰富 & 功能强大的操作符,几乎能完成所有的功能需求今天,我将为大家详细介绍RxJava操作符中最转载 2017-12-01 10:12:03 · 4623 阅读 · 0 评论 -
Android RxJava操作符详解系列: 变换操作符
前言Rxjava,由于其基于事件流的链式调用、逻辑简洁 & 使用简单的特点,深受各大 Android开发者的欢迎。如果还不了解 RxJava,请看文章:Android:这是一篇 清晰 & 易懂的Rxjava 入门教程RxJava如此受欢迎的原因,在于其提供了丰富 & 功能强大的操作符,几乎能完成所有的功能需求今天,我将为大家详细介绍RxJav转载 2017-12-01 10:02:09 · 284 阅读 · 0 评论 -
Android RxJava操作符详解系列: 创建操作符
前言Rxjava,由于其基于事件流的链式调用、逻辑简洁 & 使用简单的特点,深受各大 Android开发者的欢迎。如果还不了解 RxJava,请看文章:Android:这是一篇 清晰 & 易懂的Rxjava 入门教程RxJava如此受欢迎的原因,在于其提供了丰富 & 功能强大的操作符,几乎能完成所有的功能需求今天,我将为大家详细介绍RxJav转载 2017-12-01 09:59:06 · 282 阅读 · 0 评论 -
activity长时间后台的回收重建
Android系统的回收机制会在未经用户主动操作的情况下销毁activity(比如长时间后台运行),而为了避免系统回收activity导致数据丢失,Android为我们提供了onSaveInstanceState(Bundle outState)和onRestoreInstanceState(Bundle savedInstanceState)用于保存和恢复数据。一、onSaveInsta原创 2017-11-27 19:33:01 · 2111 阅读 · 0 评论 -
深入理解MediaPlayer
1)如何获得MediaPlayer实例:可以使用直接new的方式:MediaPlayer mp = new MediaPlayer();也可以使用create的方式,如:MediaPlayer mp = MediaPlayer.create(this, R.raw.test);//这时就不用调用setDataSource了2) 如何设置要播放的文件:MediaPlaye转载 2017-08-22 11:11:12 · 358 阅读 · 0 评论 -
Android总结之UI
一、布局管理器 1、LinearLayout:线性布局 2、TableLayout:表格布局 TableLayout继承自LinearLayout,采用行、列的形式来管理UI组件,通过添加TableRow(也是继承自LinearLayout)、其他组件来控制表格的行数和列数,它独有的三种行为方式为: ①Shrinkable:该列所有单元格的宽度是否可以被收原创 2017-07-06 12:29:41 · 542 阅读 · 0 评论 -
Android Handler基础
这篇文章从 为什么要有 Handler 到 如何使用 Handler 两个方面对 Handler 进行了介绍,并对我们熟知的常识『Android 中不允许在子线程中更新 UI』做了一个简要的分析。算是一篇比较基础的 Handler 介绍分析文章。这篇文章主要讲解和记录自己对 Handler 的理解。因为一开始接触 Android 就接触到了 Handler,所以对 handler 的了解应该比转载 2017-04-14 11:22:54 · 440 阅读 · 0 评论 -
Android画画板剖析
public class MainActivity extends AppCompatActivity{ private ImageView iv; private Bitmap bitmap,backGroud; //画纸和背景图 private Canvas canvas; //画布 privat原创 2016-08-10 12:21:09 · 437 阅读 · 0 评论 -
Android Paint
自定义控件具有很强的灵活性,可以根据你的想法画出各种各样的图案,在Android中如果是自定义控件的话,Paint这个类用的还是较多的,这一篇就来简单介绍Paint这个类的使用,先来看一下这个类的注释[java] view plain copy /** * The Paint class holds the style and color in转载 2017-04-13 12:09:40 · 304 阅读 · 0 评论 -
Android RxJava操作符详解 系列:功能性操作符
前言Rxjava,由于其基于事件流的链式调用、逻辑简洁 & 使用简单的特点,深受各大 Android开发者的欢迎。如果还不了解 RxJava,请看文章:Android:这是一篇 清晰 & 易懂的Rxjava 入门教程RxJava如此受欢迎的原因,在于其提供了丰富 & 功能强大的操作符,几乎能完成所有的功能需求今天,我将为大家详细介绍RxJav转载 2017-12-01 10:13:55 · 334 阅读 · 0 评论 -
Android RxJava 操作符详解系列:过滤操作符
前言Rxjava,由于其基于事件流的链式调用、逻辑简洁 & 使用简单的特点,深受各大 Android开发者的欢迎。如果还不了解 RxJava,请看文章:Android:这是一篇 清晰 & 易懂的Rxjava 入门教程RxJava如此受欢迎的原因,在于其提供了丰富 & 功能强大的操作符,几乎能完成所有的功能需求今天,我将为大家详细介绍RxJav转载 2017-12-01 10:15:32 · 292 阅读 · 0 评论 -
Android 属性动画详解
前言动画的使用 是 Android 开发中常用的知识本文将详细介绍 Android 动画中 属性动画的原理 & 使用相关文章阅读: 1. Android 动画系列 Android 动画:手把手教你使用 补间动画 Android 动画:你真的会使用插值器与估值器吗?(含详细实例教学) 2. 自定义View的原理,请参考我写的文章: (1)自定义View转载 2017-12-01 10:31:17 · 831 阅读 · 0 评论 -
Android UI优化
在Android开发中,我们常用的布局方式主要有LinearLayout、RelativeLayout、FrameLayout等,通过这些布局我们可以实现各种各样的界面。与此同时,如何正确、高效的使用这些布局方式来组织UI控件,是我们构建优秀Android App的主要前提之一。本篇内容就主要围绕Android布局优化来讨论在日常开发中我们使用常用布局需要注意的一些方面,同时介绍一款SDK自带的U转载 2015-11-13 15:40:49 · 259 阅读 · 0 评论 -
获取软键盘高度
private static int getDecorViewInvisibleHeight(final Activity activity) { final View decorView = activity.getWindow().getDecorView(); if (decorView == null) return sDecorV...原创 2019-03-06 12:16:19 · 1849 阅读 · 0 评论 -
Android studio debug
今天的文章,我要记录的就是有关调试的技巧,不论你是否已经掌握,都值得一看。对了,文章的截图是我利用下班时间整理的,所以一般会很晚回去,到家都是十点半左右,因为时间还是比较仓促的,有些地方遗漏或者不正确的,欢迎指正!下面进入正题。1. 调试窗口先来一张大图,途中详细标注了调试窗口中,各个常用的功能区域和按键。如果你觉得图片看不清,可以选择在单独的标签页打开,然后放大看(实在不行,可以留下邮箱我...转载 2018-12-21 12:01:57 · 680 阅读 · 0 评论 -
PendingIntent第四个参数flags在Notification中的不同作用
PendingIntent第四个参数为int类型的flags,首先看一下官方文档对它的描述:flags May be FLAG_ONE_SHOT, FLAG_NO_CREATE, FLAG_CANCEL_CURRENT, FLAG_UPDATE_CURRENT, or any of the flags as supported by Intent.fillIn() to control whi...转载 2018-07-21 12:57:11 · 470 阅读 · 0 评论 -
Android 31个开发者工具
文中部分工具是收费的,但是绝大多数都是免费的。FlowUp这是一个帮助你跟踪app整体性能的工具,深入分析关键的性能数据如FPS, 内存, CPU, 磁盘, 等等。FlowUp根据用户数量收费。Stetho由Facebook开发的一个强大的开源Android debug平台,Stetho让原生 Android app的debug跟使用Chrome的开发者工具debug web页面一样简单。它能让你...转载 2018-07-06 13:54:34 · 527 阅读 · 0 评论 -
android 5.0系统新增默认颜色
伴随着Android5.0的发布也更新了support-v7-appcompat 到V21,其中增加了ToolBar、recyclerview、cardview等控件。Android5.0对改变APP样式下了不小的功夫,写法也和以前不一样了,下面先简单介绍一下colorAccent,colorPrimary,colorPrimaryDark……的作用:1.colorPrimary 应用的主要色调,...转载 2018-05-16 14:50:03 · 264 阅读 · 0 评论 -
Android事件传递机制
实验环境OS X 10.9Eclipse(ADT)Android源码版本:API Level 19(Android 4.4)Android事件构成在Android中,事件主要包括点按、长按、拖拽、滑动等,点按又包括单击和双击,另外还包括单指操作和多指操作。所有这些都构成了Android中的事件响应。总的来说,所有的事件都由如下三个部分作为基础:按下(原创 2015-11-13 15:49:27 · 303 阅读 · 0 评论 -
Android WebView 的缓存机制
前言由于H5具备 开发周期短、灵活性好 的特点,所以现在 Android App大多嵌入了 Android Webview 组件进行 Hybrid 开发但我知道你一定在烦恼 Android Webview 的性能问题,特别突出的是:加载速度慢 & 消耗流量今天,我将针对 Android Webview 的性能问题,提出一些有效解决方案。目录1. Andr转载 2017-12-01 10:41:32 · 692 阅读 · 1 评论 -
Android 内存优化
一、Android Monitors二、Heap Snapshot(基于Android studio) Heap Snapshot用于获取Java堆内存详细信息,在Android studio中通过点击Dump Java Heap按钮生成一个hprof文件,点击进入Heap Snapshot面板,其具体列表意义如下: Total Count:内存中该类的对象个数原创 2017-04-12 22:52:29 · 321 阅读 · 0 评论 -
Android-taskAffinity
Activity的归属,也就是Activity应该在哪个Task中,Activity与Task的吸附关系。我们知道,一般情况下在同一个应用中,启动的Activity都在同一个Task中,它们在该Task中度过自己的生命周期,这些Activity是从一而终的好榜样。那么为什么我们创建的Activity会进入这个Task中?它们会转到其它的Task中吗?如果转到其它的Task中,它们会到什么样转载 2017-03-21 16:59:02 · 264 阅读 · 0 评论 -
Android activity切换黑屏/白屏
本篇博客要剖析和解决的两个问题: 1. APP启动时白屏/黑屏、Activity打开时白屏/黑屏。 2. APP启动速度慢,如果实现点击ICON后APP秒开。APP启动加速。APP启动时白屏/黑屏、Activity打开时白屏/黑屏首先要说明的是无论是APP启动,还是startActivity都是Activity的启动,所以这归根结底是一个问题,看完本博客就明白了。这是一转载 2017-02-21 17:19:39 · 7586 阅读 · 1 评论 -
Android studio导入第三方类库
Android studio中导入第三方类库分为两种形式,一种是jar包类,一种是源代码类库。1、jar包类在需要导入jar包的项目中创建libs文件夹,将下载的jar包复制到该文件夹中,然后在选择项目单击Open Module Settings,在Dependencies中选择添加文件,将jar包加入到build.gradle中,如下所示:新建好了Android项目,添加一个原创 2016-05-27 00:07:31 · 415 阅读 · 0 评论 -
Android 6.0权限模型
android M 的名字官方刚发布不久,最终正式版即将来临!android在不断发展,最近的更新 M 非常不同,一些主要的变化例如运行时权限将有颠覆性影响。惊讶的是android社区鲜有谈论这事儿,尽管这事很重要或许在不远的将来会引发很严重的问题。这是今天我写这篇博客的原因。这里有一切关于android运行时权限你需要知道的,包括如何在代码中实现。现在亡羊补牢还不晚。新运行时权限转载 2016-05-26 16:59:52 · 426 阅读 · 0 评论 -
Android开发之DialogFragment
1、 概述DialogFragment在android 3.0时被引入。是一种特殊的Fragment,用于在Activity的内容之上展示一个模态的对话框。典型的用于:展示警告框,输入框,确认框等等。在DialogFragment产生之前,我们创建对话框:一般采用AlertDialog和Dialog。注:官方不推荐直接使用Dialog创建对话框。2、 好处与用法使用Dialog原创 2016-04-18 18:56:11 · 449 阅读 · 0 评论 -
SourceTree名词解释
克隆(clone):从远程仓库URL加载创建一个与远程仓库一样的本地仓库提交(commit):将暂存文件上传到本地仓库(我们在Finder中对本地仓库做修改后一般都得先提交一次,再推送)检出(checkout):切换不同分支添加(add):添加文件到缓存区移除(remove):移除文件至缓存区暂存(git stash):保存工作现场重置(reset):回到最近添加(add)/提交(commit)状原创 2016-04-25 15:53:54 · 460 阅读 · 0 评论 -
Android性能分析工具-TraceView
正确使用Android性能分析工具——TraceView##TraceView界面现来看一下整个界面的图,整个界面包括上下两部分,上面是你测试的进程中每个线程的执行情况,每个线程占一行;下面是每个方法执行的各个指标的值上面一部分是你测试进程的中每个线程运行的时间线,下图中可以可以看到,主要只有一个main线程在执行,因为我滑动了一下列表,main线程(UI线程)正在进行绘制Vi转载 2015-11-14 15:48:37 · 393 阅读 · 0 评论 -
Https和SSL
SSL,传输层安全(TSL),是一个常见的用来加密客户端和服务器通信的模块。 但是应用程序错误地使用SSL可能会导致应用程序的数据在网络中被恶意攻击者拦截。为了帮助你确保这种情况不在你的应用中发生,这篇文章主要说明使用网络安全协议常见的陷阱和使用Public-Key Infrastructure(PKI)时一些值得关注的问题。概念一个典型的SSL使用场景是,服务器配置中包含了一个证书,翻译 2015-11-14 12:23:19 · 488 阅读 · 0 评论 -
Android学习资料
Android 系列教程入门指南Getting Started | Android DevelopersHow to get started programming Android apps | HalfAppA step by step guide about how to get started and involved in Android转载 2015-11-13 15:24:55 · 461 阅读 · 0 评论 -
Button之setOnClickListener
一个简单的自定义控件设置Button的点击事件,我的写法如下,发现当点击Button时并不能响应点击事件,如initData当中的写法,第一种不响应,第二种响应,很是费解,查看源码public void setOnClickListener(OnClickListener l) { if (!isClickable()) { setClickable(true);原创 2015-12-09 15:51:52 · 1790 阅读 · 0 评论 -
动态显示和隐藏状态栏
小米Launcher有一个细节上的功能效果:在长按桌面应用图标时,会隐藏状态栏,然后在状态栏原有的布局上显示卸载或删除的操作栏。放手后,操作栏隐藏,状态栏显示出来。也就是说,这个过程是涉及到对状态栏的动态操作的。 View类提供了setSystemUiVisibility和getSystemUiVisibility方法,这两个方法实现对状态栏的动态显示或隐藏的操作,以及获取状态栏当前转载 2016-02-29 09:50:02 · 697 阅读 · 0 评论 -
Mac上配置adb命令
在Mac上配置adb命令在Mac OS中使用adb命令时,应进行变量配置,步骤如下:一、终端中输入 cd ~二、输入touch .bash_profile 回车touch:如果没有,则创建文件,如果有,更新一下文件时间三、输入open -e .bash_profileopen:打开文件回车后会在TextEdit中打开这个文件(如果未配置过环境转载 2016-03-01 11:21:25 · 497 阅读 · 0 评论