安卓
文章平均质量分 76
jushenziao
这个作者很懒,什么都没留下…
展开
-
可拖拽排序的GridView(基于RecyclerView实现)
简介具有拖拽效果的GridView是一个很常见的效果,例如发微博时的选择图片的九宫格,资讯类频道的编辑排序。目前市面上常见的大多数基于GridView重写onTouchEvent触摸事件的处理。但实现起来代码量较大,后期维护成本比较高。如今RecyclerView的使用已经相当普及了,今天鄙人提供一个使用RecyclerView实现的版本,使用RecyclerView自带的动画效果,后期维护...原创 2019-06-20 23:48:38 · 1694 阅读 · 1 评论 -
ConcurrentHashMap原理
集合是编程中最常用的数据结构。而谈到并发,几乎总是离不开集合这类高级数据结构的支持。比如两个线程需要同时访问一个中间临界区(Queue),比如常会用缓存作为外部文件的副本(HashMap)。这篇文章主要分析jdk1.5的3种并发集合类型(concurrent,copyonright,queue)中的ConcurrentHashMap,让我们从原理上细致的了解它们,能够让我们在深度项目开发中获益非浅转载 2016-09-04 23:44:53 · 247 阅读 · 0 评论 -
EventBus粘性事件
From: http://www.2cto.com/kf/201506/404386.htmlUser.java类 :// 实体类实现序列化public class User { String name ; String phoneNum; // 其他字段省略 public User(String aName) {转载 2016-09-04 23:42:40 · 886 阅读 · 0 评论 -
Running as a foreground service(前台进程)
Services are often used for performing background tasks, such as fetching emails, synchronizing data, downloading content, amongst other possibilities. In these cases, the user is not actively aware o原创 2016-08-10 17:38:26 · 681 阅读 · 0 评论 -
为什么ListView条目中有Button时setOnItemClickListener不生效
当我们setOnItemClickListener时 实际上调用的是AdapterView中/** * Register a callback to be invoked when an item in this AdapterView has * been clicked. * * @param listener The callback that will be i原创 2016-08-10 12:06:55 · 816 阅读 · 0 评论 -
一直被误用的ListView+CheckBox
我们知道,ListView配合Checkbox在开发中是一种常见的需求,而这个需求明显的问题就是Checkbox复用的问题,因为复用问题,你选中的某个checkbox在滑出屏幕在划回来时,他就不再是选中状态了,我们都知道原因,在网上搜索找到的方法无非就是新建个Map的数据结构保存一下checkbox的选中状态,等checkbox在显示的时候,把正确的状态在赋值给checkbox,或者在ListVi原创 2016-08-10 10:24:51 · 2632 阅读 · 1 评论 -
android:configChanges="orientation|keyboardHidden|screenSize"真的能固定屏幕吗
之前固定屏幕一直用的android:screenOrientation="portrait"与android:screenOrientation="landscape"今天在activity改变配置销毁重启与被系统杀死重启时,看见很多人说android:configChanges="orientation|keyboardHidden|screenSize"可以固定屏幕而我在A原创 2016-08-19 10:43:24 · 3157 阅读 · 0 评论 -
生成带数字的Bitmap
public class MarkedIconProducer { private static final int MARK_CIRCLE_RADIU = 10; public static Bitmap createMarkedIcon(Bitmap bitmap, int number) { BitmapFactory.Options options =原创 2016-08-17 17:51:03 · 690 阅读 · 0 评论 -
UML解惑:图说UML中的六大关系
UML定义的关系主要有六种:依赖、类属、关联、实现、聚合和组合。这些类间关系的理解和使用是掌握和应用UML的关键,而也就是这几种关系,往往会让初学者迷惑。这里给出这六种主要UML关系的说明和类图描述,一看之下,清晰明了;以下就分别介绍这几种关系:继承指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者接口与接口之间最常转载 2016-08-08 10:11:06 · 319 阅读 · 0 评论 -
Android轻量级ORM框架ActiveAndroid入门教程(转)
在AndroidManifest.xml中我们需要添加这两个AA_DB_NAME (数据库名称,这个name不能改,但是是可选的,如果不写的话 是默认的"Application.db"这个值)AA_DB_VERSION (数据库版本号,同样是可选的 – 默认为1) ... 这个是必须指定的,但你转载 2016-08-28 20:07:20 · 411 阅读 · 0 评论 -
<original-package>标签
Manifest.xml 中 标签中package属性用于设置应 用程序的进程名,即在运行时使用ddms查看到的进程名。 标签用以设置应用 源码包名,即Java文件所在的源码程序包层次,android工程中真实的源代码层次结构。 中package属性若与的android:name值相同,配置组建时android:name属性值 可以使用".ClassName"形式。转载 2016-08-27 11:44:09 · 608 阅读 · 0 评论 -
仿联系人界面右侧索引栏
注释的不是很详细,用到的朋友看一下吧,包名.QuicklyIndexBar android:id="@+id/bar" android:layout_width="20dp" android:layout_height="match_parent" android:layout_alignParentRight="true" android:back原创 2015-12-30 11:58:50 · 575 阅读 · 0 评论 -
Chronometer
在Android的SDK中,为我们提供了一个计时器,这个计时器称为Chronometer,我们可以成它为Android的一个组件,同时它也具备自己独有的方法在Android的SDK中,为我们提供了一个计时器,这个计时器称为Chronometer,我们可以成它为Android的一个组件,同时它也具备自己独有的方法。下面我们举例介绍下这个计时器的使用以及常用的方法。跟其他UI组转载 2016-10-11 16:33:44 · 386 阅读 · 0 评论 -
Android性能优化总结
1.ListView ListView中item的布局至关重要,必须尽可能的减少使用的控件,布局。RelativeLayout是绝对的利器,通过它可以减少布局的层次。同时要尽可能的复用控件,这样可以减少ListView的内存使用,减少滑动时GC次数。ListView的背景色与cacheColorHint设置相同颜色,可以提高滑动时的渲染性能。ListView中getView是性能是关键转载 2016-09-28 15:17:30 · 224 阅读 · 0 评论 -
手动实现类似HandlerThread
public class LooperExecutor extends Thread implements Executor { private static final String TAG = "LooperExecutor"; // Object used to signal that looper thread has started and Handler instance原创 2018-01-14 22:37:56 · 325 阅读 · 0 评论 -
thread exiting with uncaught exception
thread exiting with uncaught exception原创 2017-04-01 09:38:46 · 606 阅读 · 0 评论 -
NDK使用二进制库方法 使用静态库和动态库
NDK使用二进制库方法:原文链接:https://my.oschina.net/jianyu0/blog/289280Android NDK r5 introduced support for prebuilt libraries (shared and static), i.e. the ability to include and use, in your applications转载 2017-02-13 14:50:31 · 749 阅读 · 0 评论 -
Application.mk语法解释
原文链接 http://blog.csdn.net/roland_sun/article/details/46318893Application.mk是用来描述你的应用程序需要哪些模块,以及这些模块所要具有的一些特性。而相对的Android.mk是用来描述要编译某个具体的模块,所需要的一些资源,包括要编译的源码、要链接的库等等。Application.mk所要描述的内容主要包括转载 2017-02-13 14:27:54 · 470 阅读 · 0 评论 -
Android签署应用
签署您的应用本文内容证书和密钥库签署您的调试构建调试证书的有效期签署您的发布构建配置构建流程以自动签署您的 APK以不同方式签署每个产品风味签署 Android Wear 应用签署注意事项保护您的私钥从您的构建文件中移除签署信息手动签署您的应用Android 要求所有 APK 必须先使用证书进行转载 2016-12-12 17:28:07 · 892 阅读 · 0 评论 -
调试证书的有效期
用于针对调试签署 APK 的自签署证书的有效期为 365 天,从其创建日期算起。当此证书到期时,您将收到一个构建错误。要修复此问题,只需删除 debug.keystore 文件即可。文件存储在以下位置: ~/.android/(OS X 和 Linux)C:\Documents and Settings\\.android\ (Windows XP)C:\Users\\.android原创 2016-12-12 17:00:29 · 963 阅读 · 0 评论 -
SQLLite优化
对比在android中批量插入数据的3中方式对比(各插入1W条数据所花费的时间):1、 一个一个插入 /** * 向表中插入数据 * * @param openHelper * @param appInfo * @return */ publicstaticb转载 2016-11-15 09:57:56 · 360 阅读 · 0 评论 -
Collections.unmodifiableList
今天阅读源码的时候,无意中看到了Collections.unmodifiableList的用法,因为以前没有这样做过,所以查询了他的API,是这样写的public static List unmodifiableList(List list)参数:list--这是一个不可修改视图是要返回的列表中。返回值:在方法调用返回指定列表的不可修改视图。1、用法探讨: 1 pub转载 2016-10-31 14:06:52 · 330 阅读 · 0 评论 -
FLAG_WINDOW_IS_OBSCURED 安全性检测
/** * This flag indicates that the window that received this motion event is partly * or wholly obscured by another visible window above it. This flag is set to true * even if the event did not di原创 2016-11-10 16:42:18 · 2030 阅读 · 0 评论 -
RelativeLayout和LinearLayout性能比较 相对布局和线性布局的性能比较
RelativeLayout和LinearLayout性能比较相对布局和线性布局的性能比较【原文链接】 :http://blog.csdn.net/guyuealian/article/details/52162774 看到几篇关于RelativeLayout和LinearLayout性能分析的博客,写的相当不错,这里在大神的基础上,增加了部分内容 Rel转载 2016-09-29 14:04:53 · 8785 阅读 · 2 评论 -
INSTALL_FAILED_SHARED_USER_INCOMPATIBLE while using shared user id
followed these steps:Removed existing application (if it is already installed )Removed share user ID from android manifestBulid the application.Now enter share user ID againbuild the app原创 2016-07-21 09:49:14 · 259 阅读 · 0 评论 -
怎样在Android中使用Loaders
原文地址:http://www.grokkingandroid.com/using-loaders-in-android/How to Use Loaders in Android 安卓3.0引入Loaders机制让开发者更方便的获取database和Contentprovider中的数据,Loaders机制异步加载数据并且加载完成后会通知监听者们。翻译 2016-06-13 15:42:44 · 349 阅读 · 0 评论 -
RXJava——Subscribe (订阅)
原文链接:http://gank.io/post/560e15be2dca930e00da1083创建了 Observable 和 Observer 之后,再用 subscribe() 方法将它们联结起来,整条链子就可以工作了。代码形式很简单:observable.subscribe(observer);// 或者:observable.subscribe(subscrib转载 2016-06-27 18:27:14 · 7556 阅读 · 0 评论 -
RXJava——创建 Observable
Observable 即被观察者,它决定什么时候触发事件以及触发怎样的事件。 RxJava 使用 create() 方法来创建一个 Observable ,并为它定义事件触发规则:Observable observable = Observable.create(new Observable.OnSubscribeString>() { @Override public v转载 2016-06-27 18:22:27 · 378 阅读 · 0 评论 -
RxJava——创建 Observer
原文链接 http://gank.io/post/560e15be2dca930e00da10831) 创建 ObserverObserver 即观察者,它决定事件触发的时候将有怎样的行为。 RxJava 中的 Observer 接口的实现方式:ObserverString> observer = new ObserverString>() { @Override转载 2016-06-27 18:19:24 · 762 阅读 · 0 评论 -
LocalBroadcastManager
原文链接: http://blog.chengyunfeng.com/?p=498LocalBroadcastManager是Android Support包提供了一个工具,是用来在同一个应用内的不同组件间发送Broadcast的。使用LocalBroadcastManager有如下好处:发送的广播只会在自己App内传播,不会泄露给其他App,确保隐私数据不会泄转载 2016-06-23 17:26:48 · 215 阅读 · 0 评论 -
MultiDex 官方教你解决64K方法
官网地址:http://developer.android.com/tools/building/multidex.html 大概意思翻译一下,不是逐词逐句,意会意会。。由于Android平台的持续增长,Android应用程序的大小也随之增大。当你的应用程序引用库达到一定的规模,就会出错(64K):Conversion to Dalvik format failed:Unabl翻译 2016-05-04 16:44:53 · 5863 阅读 · 0 评论 -
安卓国际化之翻译编辑器
原文地址:http://developer.android.com/tools/help/translations-editor.html#running编辑翻译在该文献关于翻译编辑器运行编辑翻译管理字符串资源订购翻译服务也可以看看支持不同的语言与资源本地化提供资源如果你的应用程序支持多国语言,你需要正确地管理你的翻译字符翻译 2016-05-05 14:04:35 · 1268 阅读 · 0 评论 -
安卓联系人源码 之AsyncTaskExecutors分析
/* * Copyright (C) 2011 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * Yo原创 2016-04-14 11:06:43 · 659 阅读 · 0 评论 -
移动EditText光标到末位
今天在项目中遇到需要将EditText光标移动末位的功能本来代码 mEditText.setSelection(number.length()) number是EditText中的字符串咋一看没瑕疵,实际上确bug不断,查询一番正确写法:mInputView.setSelection(mInputView.length());//minputview即为Edittext原创 2016-04-07 13:51:21 · 354 阅读 · 0 评论 -
DialogFragment 获取context
今天项目中很意外报了一个弹Toast时的异常,原来是传给toast的context为空,研究了一下,在Fragment中获取context最靠谱的方式是在@Overridepublic void onAttach(Activity activity) { mContext = activity; super.onAttach(activity);}直接使用getA原创 2016-03-09 13:41:04 · 1948 阅读 · 0 评论 -
RXJava——线程控制 —— Scheduler (一)
原文链接:http://gank.io/post/560e15be2dca930e00da1083在不指定线程的情况下, RxJava 遵循的是线程不变的原则,即:在哪个线程调用 subscribe(),就在哪个线程生产事件;在哪个线程生产事件,就在哪个线程消费事件。如果需要切换线程,就需要用到Scheduler (调度器)。1) Scheduler 的 API (一)转载 2016-06-27 18:31:33 · 4759 阅读 · 0 评论 -
RXJava——线程控制:Scheduler (二)
原文链接:http://gank.io/post/560e15be2dca930e00da1083除了灵活的变换,RxJava 另一个牛逼的地方,就是线程的自由控制。1) Scheduler 的 API (二)前面讲到了,可以利用 subscribeOn() 结合 observeOn() 来实现线程控制,让事件的产生和消费发生在不同的线程。可是在了解了map() flatMap转载 2016-06-28 10:01:07 · 369 阅读 · 0 评论 -
Gsonformat——json快速生成javaBean
原文链接http://wuxiaolong.me/2016/01/15/retrofit/Gsonformat作用:Android studio插件,一般接口返回数据后要建立自己的bean,Gsonformat帮助你快速生成,不用一条一条去写。比jsonschema2pojo更加简单。安装步骤:Android studio-Settings-Plugins-搜Gsonformat-转载 2016-06-30 14:18:01 · 774 阅读 · 0 评论 -
仿支付宝支付成功动画
与支付宝支付成功后类似的一个动画,本人小白一只大神请绕过,画的菜大家见谅直接将view拷贝进项目中即可,动画开关为loadCircle和stop方法,提供了监听接口OnDoneCircleAnimListner以便于和外部逻辑衔接import android.animation.Animator;import android.animation.AnimatorListenerAdap原创 2015-11-17 08:14:09 · 5421 阅读 · 4 评论 -
向 Activity 添加片段
向 Activity 添加片段通常,片段向宿主 Activity 贡献一部分 UI,作为 Activity 总体视图层次结构的一部分嵌入到 Activity 中。可以通过两种方式向 Activity 布局添加片段:在 Activity 的布局文件内声明片段在本例中,您可以将片段当作视图来为其指定布局属性。 例如,以下是一个具有两个片段的 Activity 的布局文件:xml v原创 2016-07-19 15:43:25 · 367 阅读 · 0 评论