
android
文章平均质量分 60
tianhui1234567
这个作者很懒,什么都没留下…
展开
-
手持ActivityLifecycleCallbacks,监听前后台状态如此舒服
之前写过一小文,Android 程序打开即启动指定页面,比如密码检查页。,实现方式麻烦琐碎,后来Alex_Cin留言说可以考虑采用Application.ActivityLifecycleCallbacks来实现 监听程序处于前台还是后台 ,阅读学习后,大呼过瘾。很早就想把这个写成博客记录分享给各位朋友,但是因为个人原因迟迟未完成,现在补上。关于监听程序处于前台还是后台弄一个Base...转载 2018-12-27 20:47:34 · 503 阅读 · 0 评论 -
判断当前app是debug还是release
//判断当前应用是否是debug状态public static boolean isApkInDebug(Context context) { try { ApplicationInfo info = context.getApplicationInfo(); return (info.flags & ApplicationInfo.FLA...原创 2018-09-25 11:04:47 · 1885 阅读 · 0 评论 -
java8新的时间日期库及使用示例
来自:Java译站链接:http://it.deepinmind.com/java/2015/03/17/20-examples-of-date-and-time-api-from-Java8.html英文:http://javarevisited.blogspot.sg/2015/03/20-examples-of-date-and-time-api-from-Java8.html...转载 2018-09-17 14:17:35 · 162 阅读 · 0 评论 -
ViewPager 全面总结
一、简介Viewpager,视图翻页工具,提供了多页面切换的效果。Android 3.0后引入的一个UI控件,位于v4包中。低版本使用需要导入v4包,但是现在我们开发的APP一般不再兼容3.0及以下的系统版本,另外现在大多数使用Android studio进行开发,默认导入v7包,v7包含了v4,所以不用导包,越来越方便了。Viewpager使用起来就是我们通过创建adapter给它...转载 2018-09-17 09:29:03 · 230 阅读 · 0 评论 -
Android TextView加上阴影效果
字体阴影需要四个相关参数:1. android:shadowColor:阴影的颜色2. android:shadowDx:水平方向上的偏移量3. android:shadowDy:垂直方向上的偏移量4. android:shadowRadius:是阴影的的半径大少最好这4个值都一起设计 shadowColor这个属性就不多说了,android:shadowDx...转载 2018-08-22 14:18:51 · 644 阅读 · 0 评论 -
杂,各种收藏
Android Studio 插件下载资源,离线安装和使用https://plugins.jetbrains.com/androidstudiohttps://blog.youkuaiyun.com/zheng_weichao/article/details/72961791 告别手写parcelablehttps://blog.youkuaiyun.com/cheyiliu/article/deta...原创 2018-08-02 10:17:10 · 146 阅读 · 0 评论 -
service和 aidl
Android:学习AIDL,这一篇文章就够了(上)https://blog.youkuaiyun.com/luoyanglizi/article/details/51980630 Android:学习AIDL,这一篇文章就够了(下)https://www.jianshu.com/p/0cca211df63c Android中的Service:默默的奉献者 (1)https:...原创 2018-08-06 11:16:02 · 186 阅读 · 0 评论 -
android 数据库语法
http://www.runoob.com/sqlite/sqlite-order-by.html原创 2018-07-26 15:56:41 · 235 阅读 · 0 评论 -
Android TextView 展开动画
大家可能都会遇到这样一个设计:某个界面设计有个ShowMore按钮,点击是文本的展开与收缩。Android默认的效果大家可能都会通过setMaxLines来实现,但直接这么做是没有动画的,就是一个文本的突变。很早之前也想过要实现一个动画,但对TextView的Layout不熟悉就一直没做过。最近在一次SpringDemoReview的时候,iOS实现了这个效果,这不行啊,我们Android不能落后...转载 2018-06-08 17:16:17 · 1352 阅读 · 0 评论 -
getDimension()、getDimensionPixelSize()和getDimensionPixelOffset()的区别
今天写代码的时候,需要从资源文件中读取一个长度值,用来设置控件的宽高,误以为getDimension()返回的就是资源里定义的dp值,后来发现不是我理解的那样。下面介绍一下getDimension()、getDimensionPixelSize()和getDimensionPixelOffset()的区别;先看我在资源中的定义:<dimen name="guide_first_cover_i...转载 2018-06-14 14:37:29 · 399 阅读 · 0 评论 -
如何获取WebView内容高度
序言最近项目需求中需要实现WebView显示内容,下方显示评论列表,列表还可以分页加载。我最近做了技术预研,难度主要是实时获取WebView的高度。效果1.分页加载2.动态获取高度,点击阅读更多,会将几个隐藏的div,显示出来,造成WebView内容高度变化。实现使用的ScrollView包裹一层LinearLayout,LinearLayout中依次防止We...转载 2018-09-25 14:28:46 · 3961 阅读 · 1 评论 -
Android 根据图片高度动态设置ViewPager高度
有图片的地方,就有需求。 为什么一个App有那么多的Banner,这里就不吐槽了。我们还是直接进主题,如何让ViewPager自适应图片的高度。 效果如下: 如何去改变ViewPager的高度,都知道用setLayoutParams,我们不清楚的是,在什么时候给Viewpager设置。聪明的孩子马上就想到,我们用ViewPager的时候,有一个OnPageChangeListener...转载 2018-09-25 14:32:49 · 1112 阅读 · 0 评论 -
Android studio 快速解决Gradle's dependency cache may be corrupt 和 Gradle配置 gradle-3.*-all.zip快速下载
用了好久的AS了,官方版本更新,各种配置工具 也跟着更新。更新后导入工程时(使用Android工程编译或者导入新的工程没有对应的gradle版本)一些电脑出现一下问题。Error:Failed to open zip file. Gradle's dependency cache may be corrupt (this sometimes occurs after a network c...转载 2018-09-19 21:40:36 · 223 阅读 · 0 评论 -
Application的作用
导言我们都知道,每个应用都会有一个Application类,这个类很常用,但大家真的了解Application的作用吗?下面我将从Application的定义,作用,和一些重要方法来展开介绍。Application的定义继承关系如下:Object <- Context <- ContextWrapper <- Application <- BaseApp...转载 2018-12-27 20:44:13 · 6967 阅读 · 2 评论 -
Android Studio获取开发版SHA1值和发布版SHA1值的史上最详细方法
前言:今天我想把百度地图的定位集成到项目中来,想写个小小的案例,实现一下,但在集成百度地图时首先要申请秘钥,申请秘钥要用到SHA1值,所以今天就来总结一下怎样去获取这个值吧,希望对大家有帮助。 正常情况下:一、获取开发版SHA1:在此我直接用Android Studio提供的命令控制台了,毕竟做Android开发几乎都是用Android Studio了。1、打开and...转载 2018-12-05 19:04:22 · 404 阅读 · 0 评论 -
1像素的Activity让应用在息屏后保活
集成后,经过测试,有的手机还是会杀死,更残忍的是,在你的手机息屏的时候,5分钟之内,你的Service早被杀的无影无踪,后来,在网上了解了一个防止Service在息屏后被杀死的思路,就是监听屏幕亮灭的广播,在息屏的时候,开启1个像素的Activity,在屏幕亮的时候,马上关闭,做到用户无感知。下面贴出代码:首先在你的不死Service中注册屏幕亮灭的广播 mScreenStatusRec...转载 2018-12-02 21:34:12 · 1886 阅读 · 1 评论 -
关于file文件存储
Java file文件的写入和读取及下载File文件的写入 一、FileWriter 和BufferedWriter 结合写入文件 FileWriter是字符流写入字符到文件。默认情况下,它会使用新的内容代替文件原有的所有内容,但是,当指定一个true值作为FileWriter构造函数的第二个参数,它会保留现有的内容,并追加新内容在文件的末尾。 BufferedWriter:...转载 2018-12-02 19:14:47 · 1259 阅读 · 0 评论 -
Android Manager之AlarmManager(闹钟服务)
1.获得AlarmManager实例对象AlarmManager alarmManager = (AlarmManager) getSystemService(Service.ALARM_SERVICE); 2.相关方法以及详解 2.1.方法:set(int type,long startTime,PendingIntent pi)作用:一次性闹钟。 2....转载 2018-11-22 10:38:37 · 274 阅读 · 0 评论 -
Lint found fatal errors while assembling a release target.
Android packaging error:Error:Execution failed for task ´:app:lintVitalRelease´.> Lint found fatal errors while assembling a release target. To proceed, either fix the issues identified ...转载 2018-11-01 10:11:26 · 696 阅读 · 0 评论 -
Android内存优化——常见内存泄露及优化方案
如果一个无用对象(不需要再使用的对象)仍然被其他对象持有引用,造成该对象无法被系统回收,以致该对象在堆中所占用的内存单元无法被释放而造成内存空间浪费,这中情况就是内存泄露。在Android开发中,一些不好的编程习惯会导致我们的开发的app存在内存泄露的情况。下面介绍一些在Android开发中常见的内存泄露场景及优化方案。单例导致内存泄露单例模式在Android开发中会经常用到,但...转载 2018-10-30 12:48:48 · 178 阅读 · 0 评论 -
Android获取App内存使用情况
1.代码获取当前app内存的使用情况ActivityManager activityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE); //最大分配内存 int memory = activityManager.getMemoryClass(); System.o...转载 2018-10-30 11:20:19 · 1746 阅读 · 0 评论 -
Android在开发中的使用技巧之解决ScrollView嵌套RecyclerView出现的系列问题
注:滑动卡顿,占据焦点,加载不全相信大家都遇到过ScrollView嵌套RecyclerView或者RecyclerView嵌套RecyclerView来使用, 也会遇到一堆奇奇怪怪的问题, 比如滑动卡顿、数据加载不完、数据加载完后没有停留在顶部等问题今天我们就来写一篇RecyclerView嵌套版本的解决方案 今年六月份的IO大会把Kotlin用做Android开发的一级语言...转载 2018-10-22 10:13:44 · 250 阅读 · 0 评论 -
java.lang.StackOverflowError: stack size 8MB
java.lang.StackOverflowError: stack size 8MB出现这种异常,大多是由于循环调用。出现场景:在本方法中调用本方法。原文地址:http://blog.sina.com.cn/s/blog_974a22240102vt2b.html...转载 2018-06-12 16:56:47 · 1232 阅读 · 0 评论 -
如何配置adb
https://jingyan.baidu.com/article/17bd8e52f514d985ab2bb800.html第一步,打开环境变量配置窗口。右击计算机,属性-高级系统设置-环境变量。2第二步,添加android系统环境变量。在系统变量下点击新建按钮,输入环境变量名android(自己的习惯命名),将android开发工具的路径导入,如图:3第三步,在path中添加刚刚添加的环境。选...转载 2018-05-29 13:15:28 · 1446 阅读 · 0 评论 -
getInterfaces和getGenericInterfaces有什么区别
getGenericInterfacespublic Type[] getGenericInterfaces()返回表示某些接口的 Type,这些接口由此对象所表示的类或接口直接实现。 如果超接口是参数化类型,则为它返回的 Type 对象必须准确反映源代码中所使用的实际类型参数。如果以前未曾创建表示每个超接口的参数化类型,则创建这个类型。有关参数化类型创建过程的语义,请参阅 Parameteriz...转载 2018-05-25 10:19:03 · 2519 阅读 · 0 评论 -
图解 Android 事件分发机制
在Android开发中,事件分发机制是一块Android比较重要的知识体系,了解并熟悉整套的分发机制有助于更好的分析各种点击滑动失效问题,更好去扩展控件的事件功能和开发自定义控件,同时事件分发机制也是Android面试必问考点之一,如果你能把下面的一些事件分发图当场画出来肯定加分不少。废话不多说,总结一句:事件分发机制很重要。Android 事件分发流###关于Android 事件分发机制网上的博...转载 2018-03-07 15:14:14 · 189 阅读 · 0 评论 -
Framework 工作原理
Framework 工作原理Framework是android 系统对 linux kernel,lib库等封装,提供WMS,AMS,bind机制,handler-message机制等方式,供app使用。Activity 是如何生成一个 view1)Activity在attch方法的时候,会创建一个phonewindow(window的子类)2)onCreate中的setContentView方法...转载 2018-02-27 13:13:47 · 1176 阅读 · 0 评论 -
anr
背景:Android App优化, 要怎么做?Android App优化之性能分析工具Android App优化之提升你的App启动速度之理论基础Android App优化之提升你的App启动速度之实例挑战Android App优化之Layout怎么摆Android App优化之ANR详解Android App优化之消除卡顿Android App优化之内存优化Android App优化之持久电量A...转载 2018-02-27 10:53:18 · 158 阅读 · 0 评论 -
多线程间通信和多进程之间通信有什么不同,分别怎么实现
一、进程间的通信方式1. 管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系2.有名管道 (namedpipe) : 有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。3. 信号量(semophore ) : 信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某进程...转载 2018-02-26 22:57:43 · 2327 阅读 · 0 评论 -
Android App优化
背景:Android App优化, 要怎么做?Android App优化之性能分析工具Android App优化之提升你的App启动速度之理论基础Android App优化之提升你的App启动速度之实例挑战Android App优化之Layout怎么摆Android App优化之ANR详解Android App优化之消除卡顿Android App优化之内存优化Android App优化之持久电量A...转载 2018-02-26 21:12:06 · 296 阅读 · 0 评论 -
UncaughtExceptionHandler
UncaughtExceptionHandler1、自 定 义 一 个 Application , 比 如 叫 MyApplication 继 承 Application 实 现UncaughtExceptionHandler。2、覆写 UncaughtExceptionHandler 的 onCreate 和 uncaughtException 方法。@Overridepublic void o...转载 2018-02-26 20:59:49 · 291 阅读 · 0 评论 -
保存图片的姿势
方法 1: 等比例缩小图片BitmapFactory.Options options = new BitmapFactory.Options();options.inSampleSize = 2;//Options 只保存图片尺寸大小,不保存图片到内存BitmapFactory.Options opts = new BitmapFactory.Options();opts.inSampleSize...原创 2018-02-26 20:56:01 · 206 阅读 · 0 评论 -
ContentObserver 内容观察者作用及
一、ContentObserver 目的是观察(捕捉)特定 Uri 引起的数据库的变化,继而做一些相应的处理。它类似于数据库技术中的触发器(Trigger),当 ContentObserver 所观察的 Uri 发生变化时,便会 触 发 它 。 触 发 器 分 为 表 触 发 器 、 行 触 发 器 , 相 应 地 ContentObserver 也 分 为 “ 表“ContentObserver...转载 2018-02-27 23:30:54 · 512 阅读 · 0 评论 -
webView缓存问题
1) LOAD_CACHE_ONLY: 不使用网络,只读取本地缓存数据2) LOAD_DEFAULT: 根据 cache-control 决定是否从网络上取数据。3) LOAD_CACHE_NORMAL: API level 17 中 已 经 废 弃 , 从 API level 11 开 始 作 用 同LOAD_DEFAULT 模式4) LOAD_NO_CACHE: 不使用缓存,只从网络获取数据....转载 2018-02-28 00:04:23 · 744 阅读 · 0 评论 -
Zygote是什么
操作系统中,进程实际上是文件到地址空间的映射像。进程将要运行时,由操作系统将其映射到地址空间,完成这项工作的事物本质也应是一个进程,我们称这个进程为孵化进程,那么这个进程怎么收到消息创建新的进程呢?可以推测,在操作系统中应当存在一个全局监听创建新进程消息的监听进程,当它收到消息时,通知孵化进程进行孵化。在安卓中,负责孵化新进程的这个进程叫做Zygote,安卓上其他的APK进程都是由它孵化的。世界的...转载 2018-02-28 10:22:13 · 1108 阅读 · 0 评论 -
反射
原文地址:http://mp.weixin.qq.com/s?__biz=MzIyNDQxMjI0Mw==&mid=2247484173&idx=1&sn=1dbecd6d0fed33cfb97da9db4208ce63&chksm=e80e1431df799d27358d66b5d99ae4ca4eec79563c8556fe83b3ad70a81656d0...转载 2018-04-28 12:05:36 · 213 阅读 · 0 评论 -
Android注解使用之使用Support Annotations注解优化代码
Android注解使用之使用Support Annotations注解优化代码前言: 前面学习总结了Java注解的使用,博客地址详见Java学习之注解Annotation实现原理,从本质上了解到什么注解,以及注解怎么使用?不要看见使用注解就想到反射会影响性能之类,今天我们就来学习一下Android Support Annotations注解来优化我们的代码,增加可读性的同时,也让让更多的错...转载 2018-04-27 14:21:34 · 202 阅读 · 0 评论 -
android文件保存File
Android中以文件形式把数据保存到磁盘上与其他平台基本上都是类似的,本篇文章将会介绍如何利用java.io.Files的API函数进行文件的读写操作。 选择内部存储还是外部存储: 所有的Android设备有两个文件存储区域:“内部”和“外部”存储。这些名字来自Android的早期,那时大多数设备提供了内置的非易失性存储器(内存),加上一个可移动的存储介质如micro SD卡(外部存储)。现在的...转载 2018-04-27 10:54:18 · 880 阅读 · 0 评论 -
android staticlayout使用讲解
使用Canvas的drawText绘制文本是不会自动换行的,即使一个很长很长的字符串,drawText也只显示一行,超出部分被隐藏在屏幕之外。可以逐个计算每个字符的宽度,通过一定的算法将字符串分割成多个部分,然后分别调用drawText一部分一部分的显示, 但是这种显示效率会很低。StaticLayout是android中处理文字换行的一个工具类,StaticLayout已经实现了文本绘制换行处理...转载 2018-04-26 19:50:27 · 1658 阅读 · 0 评论 -
【腾讯Bugly干货分享】Android 进程保活招式大全
本文来自于腾讯bugly开发者社区, ,原文地址:https://segmentfault.com/a/1190000006251859作者:腾讯——张兴华目前市面上的应用,貌似除了微信和手Q都会比较担心被用户或者系统(厂商)杀死问题。本文对 Android 进程拉活进行一个总结。Android 进程拉活包括两个层面:提供进程优先级,降低进程被杀死的概率在进程被杀死后,进行拉活本文下面就从这两个方...转载 2018-03-22 11:32:14 · 404 阅读 · 0 评论