android
文章平均质量分 66
梦天2015
天行健,君子当自强不息!
展开
-
android AIDL使用demo
Android 接口定义语言 (AIDL) 类似于其他 IDL:它允许您定义客户端和服务使用进程间通信 (IPC) 进行相互通信时都认可的编程接口原创 2024-06-28 12:28:59 · 1017 阅读 · 0 评论 -
linux常用命令
linux常用命令原创 2024-03-25 19:18:41 · 274 阅读 · 0 评论 -
android自定义Drawable显示Gif
Movie有长、宽以及时长,感觉像是表达电影的一个类。不过gif的原理类似电影,故也能应用加载gif,然后播放gif。为了使用方便,就直接吧这个功能做成了一个自定义drawable-GifDrawable。GifDrawable即可以加载res资源文件,也可以从加载输入流,所以使用方便。因为比较简单,故直接上源码不多说了。后面发现glide自带gif显示功能,功能更强大方便,所以还是推荐大家用glide显示gif吧。大家好,最近项目中需要用到gif动画显示,所以就着手研究了下gif的动画显示。......原创 2022-08-28 22:10:49 · 1283 阅读 · 0 评论 -
Android通过xml shape画实线、虚线等常见几何图形
先看下效果图,后面直接上代码,不多说如上都是通过shape文件实现的背景,右边的是点击变化的渐变背景。xml布局如下:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_原创 2016-10-22 18:59:15 · 12912 阅读 · 0 评论 -
androidstudio tool window 的显示、隐藏、固定
在使用Androidstudio开发Android时,有时我们可能会不经意的关闭了某个tool Window,或是让窗口不贴边了,导致窗口恢复不了原来的样子,这是一件很糟糕的事情。我已经遇到多次了,由于第一次遇到的时候,解决了但没有记录下解决方法,导致后面遇到的时候又得重新折腾很久,因此今天特意把它写下来。下面以AndroidStudio preview窗口为例来说明问题:假使previe原创 2017-08-28 14:51:29 · 7037 阅读 · 3 评论 -
Android名称、版本和API level的对应关系
Android版本和API level的对应关系原创 2016-09-05 16:41:58 · 24033 阅读 · 1 评论 -
Android volley的源码实现原理
对于源码研究的不是很彻底,这里只是对请求队列里的各个处理对象的层次结构做了一个记录,以便以后不熟的时候拿出来熟悉下RequestQueue//请求队列private final Set> mCurrentRequestsMap>> mWaitingRequestsPriorityBlockingQueue> mCacheQueuePriorityBlockingQueu原创 2015-11-12 13:57:39 · 676 阅读 · 0 评论 -
从HandlerThread源码理清handler、looper与messageQueue之间的关系
前端时间看到一篇关于HandlerThread 的介绍博文,感觉写的不错;再由于近段时间遇到的一个面试题:looper是如何与线程绑定到一起的?当时回答的很不流畅,因此回去之后又跟着源码分析了一边这三者之间的关系,并以此记录下来(sdk以Android-24为例)。首先看一段简短的代码 HandlerThread handlerThread = new HandlerThread原创 2017-04-05 17:49:52 · 477 阅读 · 0 评论 -
Android Tinker热修复集成解析
首先解释下tinker是什么,官方如是解释:Tinker是微信官方的Android热补丁解决方案,它支持动态下发代码、So库以及资源,让应用能够在不需要重新安装的情况下实现更新。当然,你也可以使用Tinker来更新你的插件。看到这,应该知道它的厉害了吧,支持动态下发代码、So库以及资源,第二它已经正式运用于有7、8亿用户的微信上了;比起阿里的andifx只能用作方法替换,这太强大了;因此作为app原创 2017-04-03 14:49:05 · 1048 阅读 · 0 评论 -
记录Android app双进程的内存理解
序言前段时间实际项目开发中遇到一个很奇怪的空指针问题,根据app的奔溃日志定位到源码,发现对象在使用前已经初始化了,为何还会报空指针异常呢,感觉此bug不应该出现。然后就一遍遍的问题排查,始终无头绪,后面偶然想起app是双进程运行,按正常的逻辑这个bug不应出现,那会不会和双进程有关呢。于是就立马写demo看看。问题重现这里先假设大家都是Android开发者,因此这里只讲解重要的流...原创 2018-07-05 15:08:16 · 891 阅读 · 0 评论 -
简析okhttp运用的拦截器模式
序言:在软件工程中,一个好的软件作品不仅表现在功能齐全、界面美观、操作简单易上手等方面,还在于软件的实现方式、代码结构、功能扩展和后期维护。优秀的软件就好比结实耐用又好看的房子,地基扎实,框架结构坚固同时预留有足够合理的门、窗、水、电以及后期的加层装修等位置;优秀的软件界面美观、操作简单,功能齐全,同时预留有足够的可配置性,可扩展性,可维护性等等功能。相信近期从事Android开发的大神们应该...原创 2018-11-13 11:22:24 · 337 阅读 · 0 评论 -
调查 RAM 使用情况
开发 Android 应用时,请始终注意您的应用使用了多少随机存取存储器 (RAM)。尽管 Dalvik 和 ART 运行时会执行例行垃圾回收 (GC),您仍然需要了解应用何时以及在哪里分配和释放内存。为了提供稳定的用户体验,使 Android 操作系统能够在应用之间快速切换,请确保您的应用在用户不与其交互时不会消耗不必要的内存。即使您在开发过程中遵循了管理应用的内存的所有最佳做法,您仍然可能...转载 2019-02-19 10:43:00 · 1066 阅读 · 0 评论 -
软件开发常用工具介绍
常用软件开发工具介绍原创 2019-09-02 14:23:30 · 1872 阅读 · 0 评论 -
Android开发高手课笔记
01 | 崩溃优化(上):关于“崩溃”那些事儿anr检测:FileObserver 监听 /data/anr/traces.txt 的变化(5.0以后没有权限使用)ANR-WatchDogSafeLooperBlockCanarynative崩溃日志捕获:Breakpad03 | 内存优化(上)VSS - Virtual Set Size 虚拟耗用内存(包含共享库占用的...原创 2019-08-15 15:24:28 · 422 阅读 · 0 评论 -
adroid屏幕适配方案整理
在学习绍文大神写的Android开发高手课时,在拓展看到了一些关于Android屏幕适配写的很好的文章,收益匪浅,故整理收集下来。今日头条适配方案:https://mp.weixin.qq.com/s?__biz=MzI1MzYzMjE0MQ==&mid=2247484502&idx=2&sn=a60ea223de4171dd2022bc2c71e09351&s...原创 2019-05-24 17:10:17 · 248 阅读 · 1 评论 -
教你用PopupWindow实现半屏透明功能
需求项目中UI为了实现界面的新颖独特,会设计各式各样的优美界面。比如下面的这个效果图,就是我最近遇到的看到这个效果的第一眼,你想到的是什么方法实现。网友实现看到此效果的第一眼,我想到的是不大好实现。因为我曾经看过此效果的demo,demo实现方法过于复杂,因此我首先咨询了网友,网友的回答果然让我失望:popupWindow,然后popupWindow之外窗口添加透明色。如上网友的实现...原创 2019-05-15 17:59:22 · 2838 阅读 · 2 评论 -
android jni开发指南
开发环境说明Android Studio 3.3.2java version “1.8.0_201”NKD 19.2.5345600com.android.tools.build:gradle:3.3.2工具准备这里假设读者是一位有一定经验的android开发者,对Android开发环境的搭建有一定的经验,为此简单的说一下IDE的配置。在AndroidStudio开发工具的基础上,...原创 2019-04-17 10:22:23 · 3431 阅读 · 0 评论 -
androidStudio Java注释模板
1,设置File Header/*** fileDesc* Created by ${USER} on ${DATE}. * Email h1132760021@sina.com*/进入设置页面,如图2,设置Live Templates For Java/*** fileDesc* Created by $user$ on $date$. * Email h1...原创 2019-03-19 15:38:27 · 537 阅读 · 0 评论 -
Android微信智能心跳方案
前言:在13年11月中旬时,因为基础组件组人手紧张,Leo安排我和春哥去广州轮岗支援。刚到广州的时候,Ray让我和春哥对Line和WhatsApp的心跳机制进行分析。我和春哥抓包测试了差不多两个多礼拜,在我们基本上摸清了Line和WhatsApp的心跳机制后,Ray才告诉我们真正的任务——对微信的固定心跳进行优化,并告诉我们这不是一件容易的事情。于是我和春哥开始构思第一个方案,我们开始想用统计的方...转载 2019-03-08 15:14:16 · 469 阅读 · 0 评论 -
android FragmentTabHost的使用技巧及注意事项
目前主流的app主页都是由几个tab页组成,因此我们开发app的时候一般都会涉及到主页tab的切换实现。常用的主页tab切换实现有viewpage和FragmentActivity组合,FragmentTransaction的add、replace、remove、hide和show方法,以及Android官方的FragmentTabHost。看标题,这次我们只讲FragmentTabHost的ta原创 2017-02-24 11:50:57 · 4526 阅读 · 0 评论 -
Android Edittext限制输入小数位数
Android Edittext限制输入小数位数,亲测不管你是输入,还是从其它地方粘贴过来,多余的小数位数都是会自动删除的@BindView(R.id.et) EditText et;et.addTextChangedListener(new SimpleTextWatch() { @Override public void afte原创 2016-11-28 10:43:19 · 1087 阅读 · 1 评论 -
Android关于Listview左滑动删除的原理解析
先说下实现原理:也是一个ListView,然后一个adapter。然后在adapter中设置一个正常显示的view。接着自定义一个View(MyView),把adapter中get的view(contentView)作为MyView的child View,然后在添加一个删除View作为MyView的child View并且把它放置在contentView的右边,这样一个带删除按钮的itemView就好了,接着在MyView中处理复杂的手势动作,控制让MyView向左右滑动即可。原创 2015-12-06 15:41:52 · 6813 阅读 · 0 评论 -
Volley ImageLoader加载本地图片特别版
最近项目中用到gridView显示图片,一开始自然而然的就想到显示图片用Android-Universal-Image-Loader,结果在gridview中却发现不能显示本地图片,试了多次还是不知道什么原因;如果布局文件中单独的一个imageview调用imageLoader却可以正常显示。说明我的imageLoader配置没错,很有可能这个框架和gridview结合并且加载本地图片有问题。所以原创 2016-01-20 14:15:56 · 989 阅读 · 0 评论 -
Android的输入验证,如邮箱正则验证...
鉴于网上找到多篇关于邮箱验证的正则表达式,拿来一用结果验证不通过,故这里写下一些可用的格式验证java邮箱正则验证 String check = "^([a-z0-9A-Z]+[-|_|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$"; Pattern regex原创 2015-12-11 14:14:25 · 1053 阅读 · 0 评论 -
Android关于对象(Object)在activity间传递的变化研究
情况一:activity1中有个list集合,list包含多个数据对象;然后从activity1跳到activity2,并且把list中的第一个object传给activity2,分别在activity1和activity2中打印出list中的第一个object的hash值,结果不一样;结论:list中的object在activity间传递的是object的备份数据情况原创 2015-11-09 11:28:50 · 795 阅读 · 0 评论 -
android圆角 背景半透明popupWindow
效果图如下xml文件如下:<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/lay" android:layout_width="match_parent" android:layout_height="match_pare原创 2015-03-30 15:29:16 · 7881 阅读 · 0 评论 -
与listView功能相近的gallery,主讲gallery
最近做项目要用到横向的listvew,找了下却实在没有水平方向的listview,就想到了gallery,虽然Gallery is deprecated,但它的作用个人觉得还是很不错的,(因本人不会写自定义的水平listview)gallery实现的效果涂如下:给gallery添加代码的只要代码如下: protected void onCreate(Bund原创 2015-05-23 15:24:08 · 949 阅读 · 1 评论 -
android中子线程操作UI的问题
实现方法1:runOnUiThread(new Runnable() { @Override public void run() { ChatMsgEntity recMsg = new ChatMsgEntity( Date.getDate(), true, false, ChatUtil.getP原创 2014-10-20 19:43:52 · 577 阅读 · 0 评论 -
android xml实现TextView圆角 边框颜色 边框长度 背景色
1,在drawable目录下新建textview_round_border.xml文件 <stroke android:width="1dip" android:color="#5f5f5f" /> <corners android:bottomRightRadius="4dp"原创 2015-03-18 20:04:32 · 12172 阅读 · 0 评论 -
android自定义view的自定义属性在xml中快捷键显示问题
自定义view流程:自定义view继承View;自定义View属性;重写3个构造方法(后面解释3个);重写onDraw方法;在values文件夹下建attrs.xml文件完成!下面以一个demo实现:自定义MyView继承Viewpackage com.hai.test;import android.content.Context;import原创 2015-03-16 11:19:08 · 1836 阅读 · 0 评论 -
viewPage嵌套滑动 自动滑动问题
viewPage嵌套使用时,解决滑动不流畅的代码:vpage.getParent().requestDisallowInterceptTouchEvent(true);viewPage自动播放:稍后补上原创 2015-02-10 19:23:52 · 754 阅读 · 0 评论 -
android activity中new出的线程不会随着activity的finished而结束
如图所示:我的代码如下package com.hai;import android.graphics.Bitmap;import android.os.Bundle;import android.os.Handler;import android.os.Looper;import android.os.PersistableBundle;import android原创 2016-01-09 22:43:10 · 3306 阅读 · 0 评论 -
adnroid textview设置文字横向自动滚动(跑马灯效果)
关于textview设置文字横向自动滚动(跑马灯效果)文章,虽然网上有,但我看了下,描述的正确的只有一篇,因为我觉得自己再写一篇,方便自己和大家以后方便使用先上效果图:代码如下: <TextView android:id="@+id/tv_table_name" android:layout_width原创 2016-05-11 13:07:18 · 5711 阅读 · 1 评论 -
关于HttpUrlConnection请求网络加载证书与不加载证书的区别
关于https网络请求这一块,个人感觉内容挺多的,多到难以理解,于是不自觉的又动手研究了下。关于https的有关介绍,我这里推荐一个博客:https原理:证书传递、验证和数据加密、解密过程解析,原创 2016-12-12 23:06:25 · 5265 阅读 · 0 评论 -
android 自定义实现滚动选择view:WheelView
项目中用到一个比较觉得不错的控件:WheelView,即上下滚动View。它是继承ScrollView实现,在Android各版本上的效果都是如下:也许在git上有许多这样功能的控件,但个人认为这个控件实现的方式简单,比较让人容易理解,对自定义控件的实现有借鉴意义,故在此做个记录。下面我先把把xml,Activity文件给上:xml version="1.0" encoding="ut原创 2016-11-09 23:12:22 · 4344 阅读 · 6 评论 -
论FragmentPagerAdapter与FragmentStatePagerAdapter的区别与使用场景
1,FragmentPagerAdapter:FragmentPagerAdapter的注释有一段是这么写的:* Implementation of {@link android.support.v4.view.PagerAdapter} that* represents each page as a {@link Fragment} that is persistently*原创 2016-10-02 00:48:49 · 3066 阅读 · 0 评论 -
android TextView改变部分字体的颜色,大小,设置部分字体有点击事件
android TextView改变部分字体的颜色,大小,设置部分字体有点击事件SpannableString ss = new SpannableString("lsjfkdsjfksfjkfjsdkfjfjsdkskfsdfds"); ss.setSpan(new ClickableSpan() { @Override public void updateDrawState原创 2015-04-21 14:02:52 · 2063 阅读 · 0 评论 -
教你用最新工具反编译android apk
所谓工欲善其事必先利其器,首先从官网拿到最新的反编译工具:APK反编译工具:dex2jar:https://github.com/pxb1988/dex2jar(原网址:http://code.google.com/p/dex2jar/downloads/list)Apktool:http://ibotpeaches.github.io/Apktool/(原网址:htt原创 2016-06-05 21:16:30 · 21965 阅读 · 1 评论 -
Android上自定义View实现电子签名功能
近来项目中遇到了实现电子签名的功能,现在已经完成,觉得可以,故把这一个模块抽取出来一个demo,供大家看看有什么可改进的。代码写的比较简单,代码就是注释,下面上效果图:下面是代码package com.hai.widget;import android.content.Context;import android.graphics.Bitmap;import android原创 2016-06-14 17:48:15 · 3942 阅读 · 0 评论 -
android Gradle打包使用教程
添加依赖:dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:support-v4:22.1.1' compile 'com.nostra13.universalimageloader:universal-image-loader:1....原创 2016-05-15 22:59:39 · 886 阅读 · 0 评论