Android
文章平均质量分 82
关于Android 的一切
薛瑄
大道至简
展开
-
引用其他project的module,根据参数自动配置依赖,repo管理多个 Project
前言在开发中遇到这样一个问题,在工作的project(以下简称Project A)中,用到了Fragmentation(以下简称Project B) 库的三个module,这个库是我在维护,平时更改库中的一些bug,需要先使用一段时间,再推到github,并发布到jcenter, 所以在我的工作项目中,是直接使用本地的代码,没有使用jcenter去引用它。这就遇到一个问题,在Project A 中改完 Project B的三个module,在等到发布的时候,就需要手动把代码拷贝一份到Project原创 2020-06-23 14:46:01 · 1576 阅读 · 0 评论 -
Android 仿微信表情雨 、红包雨 支持资源回收再利用
Github 项目:https://github.com/JantHsueh/EmojiRain表情雨 ViewGroup微信聊天中的表情雨效果一样。相比于其他项目的优点:本项目使用了资源缓存复用机制,在无限循环中,不会出现占用内存增长的问题,所以不会GC(除非),更流畅提供了丰富的自定义函数,可设置任意自己想要的效果先来看下效果,太阳雨。(gif有点卡顿,因为录制屏幕时的帧率不够...原创 2020-02-28 17:17:25 · 1601 阅读 · 1 评论 -
Github Actions 使用指南和Android 持续集成示例
前言Github Actions 官方文档对很多细节都进行了详细说明,但是如果你是第一次接触,看了很多关于细节的东西,不知所云,导致很快忘记。本篇文章,从我项目的代码,从总体上,认识一下Actions。文章最后,我会把我在自定义action的过程中遇到一些细节问题的解决方法。Github ActionsGithub Actions 提供了服务器(查看配置) ,来对代码进行打包发布等持续集成的...原创 2020-01-11 15:05:13 · 6679 阅读 · 0 评论 -
unable to access android sdk add-on list
转载请标明出处:http://blog.csdn.net/xx326664162/article/details/50563122 文章出自:薛瑄的博客 你也可以查看我的其他同类文章,也会让你有一定的收货!造成这个问题的原因可能有多种,下面两种方法,我亲自测试后可用,如果都不行,请在评论里告诉我,我会尽快帮你分析解决。左侧的文章分类中,Android Studio编译构建错误记录了我开发中遇原创 2016-01-22 17:01:15 · 264272 阅读 · 18 评论 -
parameter must be a descendant of this view 报错解决方案及Android 获取View焦点源码分析
前言最近的一系列源码分析,都是基于一个错误,逐步深入源码。都是网上没有源码分析的报错,这个报错也是。网络上有文章给出了有针对性的解决方案。我通过源码给出更普通的解决思路,这个问题,没有特定的解决方案,所以只能领会精髓后,随机应变。下面分析是通过一个具体问题,展开源码的分析,所以不必太在意业务场景的相似,重在领会精髓报错我的具体场景是,在从某一个界面跳转到登录界面时,点击输入框EditTe...原创 2020-01-04 15:42:13 · 8049 阅读 · 0 评论 -
Fragment has not been attached yet 解决方法及源码详解
前言在使用Fragment的时候,在内存重启的后,很容易出现一些难以预期的bug,下面将继续一边分析源码,一边看看这个bug是怎么产生的。这个报错的原因,可能和你的情况并不尽然相同。但是你可以通过对源码的理解,来加深对fragment的认识,从而能更优雅的解决问题。报错通俗的讲,就是在要使用Fragment 的 mHost 变量的时候,这个 变量为空。导致下面的报错2019-12-30 ...原创 2019-12-30 16:42:12 · 20019 阅读 · 3 评论 -
Fragment.setNextAnim(int) on a null object 解决方法及源码详解
前言相信遇到这个问题的小伙伴,一定很无奈,要想知道这个问题的原因,并根治这个问题,需要研究fragment系列的大部分源码。网上很多文章,只是简单描述了这个问题如何出现(使用的方法很麻烦,下面我回介绍一种更容易去重现这个问题的方法),我在这里从源码的角度,详细分析一下,这个问题出现的原因,知道了原因你自然知道如何解决。当让我也会给出解决方法。我的问题发生场景,可能和你的不太一样,我尽量从更普通...原创 2019-12-28 10:35:05 · 3219 阅读 · 0 评论 -
调用removeViewInternal、removeView 屏幕还是显示被删除界面 的解决方法和源码分析
这是在使用Fragmentation时遇到一个问题,在这个库中很多人都遇到这个问题。追求极致体验的我,只好对源码进行修改了。源码的问题,我已经修改了,会在近期开源出来。下面把这个问题的核心抽取出来,进行分析。问题:1、removeViewInternal 后,屏幕上还是显示那个被删除的布局界面2、虽然屏幕上显示那个被删除的布局界面,但是可以点击事件可以传递到后面的布局上。3、使用Layo...原创 2019-12-19 18:07:16 · 2019 阅读 · 0 评论 -
Android 在动画结束回调onAnimationEnd()中remove view的崩溃解决方法及源码分析
问题:问题描述起来很简单,就是在动画结束的时候,调用父view删除子view,出现崩溃,信息如下:java.lang.NullPointerExceptionAttempt to read from field 'int android.view.View.mViewFlags' on a null object reference android.view.ViewGroup.dispa...原创 2019-12-19 14:56:50 · 8028 阅读 · 2 评论 -
Android View 的scroll相关方法属性 以及Scroller弹性滑动原理
最近在修改fragmentation 的bug时,其中SwipeBackLayout 的实现使用是ViewDragHelper ,而ViewDragHelper 使用的是OverScroller,OverScroller 在大部分时候是可以取代Scroller的。所以先从Scroller来分析,这些知识用到好几次,经常忘记,也算做个笔记。Android开发中,但在这些api的实际使用过程中,开发...原创 2019-12-06 17:57:16 · 1222 阅读 · 0 评论 -
安装完APP后,点击“打开”按钮,打开APP。回到桌面,点击桌面icon打开APP,出现多个app实例
问题安装完APP后,点击“打开”按钮,打开APP。回到桌面,点击桌面icon打开APP,出现多个app实例How to prevent multiple instances of an Activity when it is launched with different Intents原因桌面启动app和安装器启动app的Intent不一样,安装完直接点击“打开”app,但是桌面点击...原创 2019-11-04 20:25:27 · 1919 阅读 · 0 评论 -
Service Manager成为Android进程间通信(IPC)机制Binder守护进程之路
来自:http://blog.csdn.net/luoshengyang/article/details/6621566本文着重介绍组件Service Manager,它是整个Binder机制的守护进程用来管理开发者创建的各种Server,并且向Client提供查询Server远程接口的功能。Service Manager组件是用来管理Server并且向Client提供查询Server远程接口转载 2016-01-15 16:10:46 · 2091 阅读 · 0 评论 -
Android应用内多进程分析和研究
正常情况下,一个apk启动后只会运行在一个进程中,其进程名为AndroidManifest.xml文件中指定的应用包名,所有的基本组件都会在这个进程中运行。但是如果需要将某些组件(如Service、Activity等)运行在单独的进程中,就需要用到android:process属性了。我们可以为android的基础组件指定process属性来指定它们运行在指定进程中。多进程的好处一般来说,Andro转载 2016-08-26 16:01:55 · 1242 阅读 · 0 评论 -
Android 图片缩放 BitmapFactory详解
参考:android之BitmapFactory.Options的使用 在把图片转化为bitmap时,遇到大一些的图片,我们经常会遇到OOM(Out Of Memory)的问题。因此需要把图片进行缩放。Options这就用到了我们上面提到的BitmapFactory.Options这个类,下面逐一介绍OptionsOptions.inJustDecodeBoundsBitmapFactory.原创 2015-09-11 18:05:38 · 4207 阅读 · 0 评论 -
点击EditText 弹出日期选择器DatePickerDialog
android 点击EditText 弹出日期选择器DatePickerDialog Android手机开发:EditText+DatePicker带日期选择器的编辑框 关于android:focusable属性在一些需要注册的项目中我们可能需要用户填写生日等其他的日期格式的数据,这时候选择DatePickerDialog无疑是比较好的选择。在用户点击输入框或者输入框获得焦点的时候弹出来Date原创 2016-12-02 16:29:29 · 13231 阅读 · 5 评论 -
Android 将自己的应用改为系统应用
所谓系统程序就是system/app目录中的程序,普通应用转换成系统程序后有稳定、减少内存(DATA)空间占用、恢复出厂设置后不会消失、修改系统时间、调用隐藏方法、系统关机重启、静默安装升级卸载应用等等等等优点,想知道怎么操作?接下来我们介绍三种方法。第一种:使用ADB命令将app安装在system/app目录下转载:android 将自己的应用改为系统应用这种方法的原理就是:1、把apk文件移动到原创 2016-11-30 16:19:11 · 87891 阅读 · 15 评论 -
android:gravity /android:layout_Gravity和android:padding / android:layout_margin
【Android布局】在程序中设置android:gravity 和 android:layout_Gravity属性android:layout_gravity和android:gravity属性的区别LinearLayout有两个非常相似的属性:android:gravity与android:layout_gravity的区别android:gravity 属性是对该view中内容的限定,用于转载 2016-11-26 23:24:55 · 840 阅读 · 0 评论 -
Android获取系统的硬件信息、系统版本以及如何检测ROM类型
一、获取手机信息Android获取手机制作商,系统版本等获取Android 的Rom信息,以及判断是否为MIUI及获取MIUI版本在开发中 我们有时候会需要获取当前手机的系统版本来进行判断,或者需要获取一些当前手机的硬件信息。android.os.Build类中。包括了这样的一些信息。我们可以直接调用 而不需要添加任何的权限和方法。android.os.Build.BOARD:获取设备基板名称 a原创 2016-09-05 11:29:34 · 39464 阅读 · 0 评论 -
Android系统 应用图标显示未读消息数(BadgeNumber) 桌面app图标的角标显示
参考: http://dev.xiaomi.com/doc/p=3904/index.html http://my.oschina.net/ososchina/blog/352286?p=1#comments http://www.voidcn.com/blog/kongbaidepao/article/p-62251.html http://www.eoeandroid.com/threa原创 2016-04-07 09:27:08 · 53730 阅读 · 3 评论 -
onScrollStateChanged 和 onScroll
参考:http://blog.csdn.net/lang791534167/article/details/45287053ListView的 滚动事件监听实现滚动监听,首先需要通过实现OnScrollListener 接口, 重写一下两个方法:onScrollStateChanged 用于监听ListView滑动状态的变化onScroll 用于监听ListView屏幕滚动onScr原创 2015-11-03 15:55:36 · 30758 阅读 · 0 评论 -
使用Adb shell dumpsys检测Android的Activity任务栈
转载:使用adb shell dumpsys检测Android的Activity任务栈谈起Android程序开发,就需要了解其四个主要的部件:Activity、Service、ContentProvider、 BroadcastReceiver。而其中Activity是唯一直接控制程序界面呈现,直面用户操作的部件(当然BrowadCastReceiver也能通过桌面控件(App Widgets)来呈原创 2016-08-31 15:37:57 · 37630 阅读 · 4 评论 -
支付宝、微信后台不死的黑科技
转载:支付宝后台不死的黑科技 微信Android客户端后台保活经验分享近期支付宝升级到了9.0,除了加入微信功能外,还新增了金钟罩功能,不要说普通的各种加速球,火箭神马的不能杀死他外,连格外牛逼的绿色守护也奈何不了他。在绿色守护里面,支付宝始终显示为“服务正在被 支付宝 使用”,不会自动休眠,恼火死了。那么问题来了,他是怎么做到的呢?支付宝干了啥?这就是支付宝在绿色守护里的状态,它一直处在不会被自转载 2016-08-31 10:24:39 · 11393 阅读 · 2 评论 -
Android平台App进程优先级
我们都知道Android手机上是可以安装很多App的,每一个App至少是会有一个进程的。创建进程是件麻烦而且耗资源的事情,Android为了让App启动的时候能更快,会把那么暂时不使用的App的进程缓存起来,但是内存是有限的啊,总不能让所有的进程都放在内存里边吧,所以Android有一个淘汰机制,会根据App的运行状态设置一个进程的优先级(oom_adj),然后根据内存的紧张程度,把那些优先级低(o转载 2016-08-29 11:02:56 · 8480 阅读 · 0 评论 -
Android 判断当前App 是在前台还是在后台
转载: android 判断当前application 是在前台还是在后台第一种: /** *判断当前应用程序处于前台还是后台 * * @param context * @return */ public static boolean isApplicationBroughtToBackground(final Context c转载 2016-08-26 20:05:10 · 3937 阅读 · 4 评论 -
Android M新特性Doze and App Standby模式详解
参考: Optimizing for Doze and App Standby Android M新特性Doze and App Standby模式详解 深入android6.0 设备 idle状态 Android M 的 Doze 模式下第三方推送服务还能用吗?一、Optimizing for Doze and App Standby从Android6.0开始,Android提供了两种省原创 2016-08-25 15:02:54 · 7958 阅读 · 2 评论 -
Android:layout_weight详解
参考: http://www.cnblogs.com/zhmore/archive/2011/11/04/2236514.html http://m.blog.csdn.net/article/details?id=24667299 http://renyuan-1991.iteye.com/blog/22722001、只有在Linearlayout中,该属性才有效。 2、android:l原创 2016-06-20 15:37:15 · 4840 阅读 · 0 评论 -
Android推送、智能心跳解决方案、手机休眠对心跳的影响
参考: Android推送技术研究 Android实现推送方式解决方案 Android微信智能心跳方案 Android休眠问题探讨Android推送服务的几种实现方式一、推送方式基础知识: 在移动互联网时代以前的手机,如果有事情发生需要通知用户,则会有一个窗口弹出,将告诉用户正在发生什么事情。可能是未接电话的提示,日历的提醒,或是一封新的彩信。推送功能最早是被用于Email中,用来提示我们转载 2016-06-08 16:13:36 · 17237 阅读 · 1 评论 -
MIUI系统 apk更换icon后,升级或重装,桌面icon不更新
原因分析:http://linghaolu.github.io/miui/2016/03/09/miui-icon-cache.html小米官方说明:app升级或者重新安装都会将原来的图标删除,再重新获取如果在应用商店有上传完美图标,使用应用商店本地缓存中的图标,如果没有,执行2如果当前使用主题有提供该app的图标,则使用主题中提供的图标如果在系统中有预置该app的完美图标,则使用系统中预置的原创 2016-06-04 10:42:51 · 6542 阅读 · 2 评论 -
MIUI 系统关于近期任务、一键清理、停止当前程序、其他应用管理
1、近期任务:近期执行的任务,不论是否还在后台运行强制结束应用A,后台没有应用A的进程,但是近期任务还是会有应用A2、一键清理,会清理程序和近期任务列表。打开近期任务,列表为空。某些应用的后台没法清理(百词斩后台,手机管家前台后台)3、停止当前程序:可完全终止应用,包括顽固的后台服务。而一键清理效果没有这么彻底4、其他应该管理-> 运行中,如果应用C是通过,停止当前任务终止的(长按菜单键(可自定义)原创 2016-06-01 16:28:22 · 9871 阅读 · 0 评论 -
Android ListView几个比较特别的属性
由于这两天在做listView的东西,所以整理出来一些我个人认为比较特别的属性,通过设置这样的属性可以做出更加美观的列表1、 stackFromBottom属性这只该属性之后你做好的列表就会显示你列表的最下面android:stackFromBottom="true" 值为true和false2、transciptMode属性最新(最下方)的条目可以自动滚动到可视范围内,用于显示大量Items转载 2015-11-03 15:15:18 · 903 阅读 · 0 评论 -
adb 修改设备的serial号码
参考: adb 修改设备的serial号码 adb 的serial number要如何修改?原创 2017-02-06 11:32:54 · 23675 阅读 · 4 评论 -
Android 在代码中控制View的填充方式和宽度、高度
http://blog.csdn.net/darlk/article/details/7578020http://www.eoeandroid.com/thread-5687-1-1.html在java代码中加载view,如何控制view的大小和填充方式呢??LayoutParams 之控制填充方式问题:有个LinearLayout,用来动态加载别的view页面,EditText的宽度是由里面的内容转载 2016-05-06 14:57:30 · 13201 阅读 · 0 评论 -
Service和Thread的关系和区别
参考: http://blog.csdn.net/guolin_blog/article/details/11952435http://ticktick.blog.51cto.com/823160/1547032http://www.cnblogs.com/newcj/archive/2011/05/30/2061370.htmlService和Thread的关系不少Android初学者都可能会有转载 2016-04-14 14:07:53 · 4466 阅读 · 1 评论 -
Android实现第一次进入App时的引导学习界面
转载:http://blog.csdn.net/u011993368/article/details/43764737因为我们所熟知的Android平台是一个又一个的Activity组成的,每一个Activity有一个或者多个View构成。所以说,当我们想显示一个界面的时候,我们首先想到的是建立一个Activity,然后所有的操作在Activity里面实现,或者是一个Dialog或者Toast。这种转载 2016-03-30 12:00:29 · 10246 阅读 · 6 评论 -
android TextView加下划线的方法
http://www.jb51.net/article/43375.htm在资源文件里,可以这样写.<resources> <string name="hello"><u>phone: 1390123456</u></string> <string name="app_name">MyLink</string></resources>在代码中:public转载 2016-03-16 09:33:29 · 2311 阅读 · 0 评论 -
Android WebView加载网页,实现前进、后退、刷新、超链接
http://blog.csdn.net/encienqi/article/details/8033182 http://www.android100.org/html/201401/18/5362.html目的:实现用webview显示网页,并且回退时回到上一个页面,而不是退出WebView ,地址栏也没有。mWebView.goBack(); //后退 mWebView.goForwar转载 2016-03-16 09:23:34 · 17037 阅读 · 0 评论 -
使用Spinner控件的常见问题
http://www.educity.cn/wenda/92137.html1、进入程序就自动执行Spinner的OnItemSelectedListener的问题解决办法: 添加一句话mySpinner.setSelection(0, true); 这句话的作用是预设一个一开始的选择默认值。如果不设置的话,将会自动执行OnItemSelectedListener()http://bbs.csd原创 2016-03-14 09:21:26 · 3863 阅读 · 0 评论 -
Android 使用Intent和Bundle传递数据及如何传递enum
参考:http://stackoverflow.com/questions/3293020/android-how-to-put-an-enum-in-a-bundlehttp://blog.csdn.net/neu_yousei/article/details/21953995在两个Activity之间传递数据,最终都是通过bundle传递,Intent的Extra属性就是Bundle对象,原创 2016-02-27 13:02:37 · 20278 阅读 · 0 评论 -
Android获取Manifest中meta-data元素的值
转载:http://blog.csdn.net/zhanghao_hulk/article/details/8662917在AndroidManifest.xml中,< meta-data>元素可以作为子元素,被包含在< activity>、< application> 、< service>和< receiver>元素中,不同的父元素,在应用时读取的方法也不同。1 :在Activity应用< me转载 2016-02-24 09:47:04 · 18609 阅读 · 0 评论 -
setchecked方法会触发OnCheckedChangeListener
http://my.oschina.net/u/1187306/blog/195417?fromerr=pEovT1Jy http://www.iteye.com/problems/102119问题: 执行到setchecked()方法,会自动调用OnCheckedChangeListener()这个接口解决方法:第一种:区分开人为点击和执行setChecked()函数,在监听器中加入一个判断,原创 2016-01-29 14:17:16 · 9085 阅读 · 5 评论