Android
文章平均质量分 66
Inconsolabl
这个作者很懒,什么都没留下…
展开
-
Android模拟器Unexpected value from nativeGetEnabledTags: 0 问题解决方法
在android4.2的模拟器上有一个问题,就是在运行模拟器的时候。老是会弹出Unexpected value from nativeGetEnabledTags: 0提示,查询后得知是sdk的一个bug。虽然不影响使用,但是看着还是不爽。解决方法:在LogCat左面有一个filter按钮,点开在by log message一栏填入^(?!.*(nativeGetEnabledTa转载 2015-06-20 15:14:26 · 427 阅读 · 0 评论 -
Handler一定要在主线程实例化吗?new Handler()和new Handler(Looper.getMainLooper())的区别
一个帖子的整理:Handler一定要在主线程实例化吗?new Handler()和new Handler(Looper.getMainLooper())的区别如果你不带参数的实例化:Handler handler = new Handler();那么这个会默认用当前线程的looper一般而言,如果你的Handler是要来刷新操作UI的,那么就需要在主线程下跑。情况:1.要刷转载 2015-09-06 12:10:39 · 414 阅读 · 0 评论 -
Bitmap 色彩模式
android——Bitmap.Config ARGB_8888Bitmap.Config有以下几个常量:1234public static final Bitmap.Config ALPHA_8public static final Bitmap.Config ARGB_4444 public static final Bitma原创 2015-09-11 15:59:34 · 1549 阅读 · 0 评论 -
Android LoaderManager
Android的加载器(loader)是从Android 3.0开始出来的东西。要理解这里需要先理解为什么会出现加载器(也有地方把它说成是装载器)呢?如果没有加载器...首先Activity是我们的前端页面展现,数据库是我们的数据持久化地址,那么正常的逻辑就是在展示页面的渲染页面的阶段进行数据库查询。拿到数据以后才展示页面。但是这个逻辑有一些缺点: 首先是查转载 2015-08-29 21:38:03 · 641 阅读 · 0 评论 -
MVP Architecture on Android
一、概述对于MVP(Model View Presenter),大多数人都能说出一二:“MVC的演化版本”,“让Model和View完全解耦”等等。本篇博文仅是为了做下记录,提出一些自己的看法,和帮助大家如何针对一个Activity页面去编写针对MVP风格的代码。对于MVP,我的内心有一个问题:为何这个模式出来后,就能被广大的Android的程序员接受呢?问了些转载 2015-09-30 10:15:53 · 383 阅读 · 0 评论 -
Flux Architecture on Android
英文原文:http://lgvalle.xyz/2015/08/04/flux-architecture/要为安卓应用找到一个好的架构不是一件容易的事情。谷歌似乎不太在乎这个事情,因此在设计模式上,除了Activity 生命周期管理之外,再也没有官方的推荐。但是,为你的应用打造一个架构是非常重要的。不管你是否喜欢,任何应用最终都会有一个架构。因此你最好是成为一个架构的奠基人,而转载 2015-09-30 11:20:03 · 544 阅读 · 0 评论 -
OkHttp使用教程
Android系统提供了两种HTTP通信类,HttpURLConnection和HttpClient。关于HttpURLConnection和HttpClient的选择>>官方博客尽管Google在大部分安卓版本中推荐使用HttpURLConnection,但是这个类相比HttpClient实在是太难用,太弱爆了。OkHttp是一个相对成熟的解决方案,据说Android4.4的源码中可转载 2015-09-14 12:28:29 · 554 阅读 · 0 评论 -
ApplicationId versus PackageName
http://tools.android.com/tech-docs/new-build-system/applicationid-vs-packagenameApplicationId 与 PackageName所有的 Android 应用程序都有一个包名。包名是设备上的这个应用程序的唯一标识,也是在谷歌Play商店上的唯一标识。这意味着,一旦你已发布的程序使用了转载 2015-09-16 11:00:55 · 407 阅读 · 0 评论 -
Android 禁用和开启四大组件的方法(setComponentEnabledSetting )
为什么要关闭组件? 在用到组件时,有时候我们可能暂时性的不使用组件,但又不想把组件kill掉,比如创建了一个broadcastReceiver广播监听器,用来想监听第一次开机启动后获得系统的许多相关信息,并保存在文件中,这样以后每次开机启动就不需要再去启动该服务了,也就是说如果没有把receiver关闭掉,就算是不做数据处理,但程序却还一直在后台运行会消耗电量和内存,这时候就需要把这个rece转载 2015-09-17 21:02:14 · 741 阅读 · 0 评论 -
Android应用使用SyncAdapter传输数据
在Android设备和web服务器之间同步数据会使你的应用更实用,更吸引用户,例如,将手机数据传到服务端实现数据备份,将数据从服务端取回让用户能够脱机使用。在某些情况下,用户会发现这样会更方便:通过web修改信息然后在手机上就可以继续使用,或者隔一段时间将手机上的数据上传到一个总存储区。虽然你可以在应用中设计自己的数据传输系统,但也应该考虑一下用Android的sync adater框架。它可转载 2015-08-28 16:32:22 · 1969 阅读 · 0 评论 -
Android解耦库EventBus的使用和源码分析
github:https://github.com/greenrobot/EventBus在编程过程中,当我们想通知其他组件某些事情发生时,我们通常使用观察者模式,正式因为观察者模式非常常见,所以在jdk1.5中已经帮助我们实现了观察者模式,我们只需要简单的继承一些类就可以快速使用观察者模式,在Android中也有一个类似功能的开源库EventBus,可以很方便的帮助我们实现观察者模式,那转载 2015-10-09 13:53:03 · 537 阅读 · 0 评论 -
Android启动另一个应用(只需知道package name)
Android SDK中有这样一个API:public abstract Intent getLaunchIntentForPackage (String packageName)如果packageName存在返回入口Intent, startActivity(Intent)可以启动应用,否则返回nullimport android.app.Activity;下面有个小示例转载 2015-09-21 13:16:10 · 780 阅读 · 0 评论 -
AAPT命令解析
aapt p[ackage] [-d][-f][-m][-u][-v][-x][-z]/[-M AndroidManifest.xml] /[-0 extension [-0 extension ...]]/[-g tolerance] [-j jarfile] /[--debug-mode] [--min-sdk-version VAL]/[--target-sdk-version V转载 2015-12-29 10:50:28 · 973 阅读 · 0 评论 -
Application内在SD卡中创建文件,但PC端无法看到
MTP, External Storage, and Your AppNOTE: This post originally appeared on the Appaholics blog as a guest postSome changes in Android 3.x may impact your application, if you are writing conte转载 2016-01-16 17:18:08 · 779 阅读 · 0 评论 -
Android 上实现非root的 Traceroute -- 非Root权限下移植可执行二进制文件 脚本文件
1. 原理思路文件权限修改无法实现 : 如果 没有 root 权限, 就不能改变二进制文件的文件权限;-- 将busybox推送到Android系统中 : 使用 adb push 命令, 将 busybox 传入到 sd 卡中, 注意, 上传到内存中无法实现;-- 上传到sd卡成功 : 使用 adb push 文件名 手机中的文件全路径名 命令;转载 2015-12-30 21:53:26 · 1391 阅读 · 0 评论 -
Fragment提交transaction导致state loss异常
下面自从Honeycomb发布后,下面栈跟踪信息和异常信息已经困扰了StackOverFlow很久了。java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState at android.support.v4.app.FragmentManagerImpl.checkState转载 2015-12-30 21:46:12 · 448 阅读 · 0 评论 -
不透明度16进制值
不透明度16进制值100%FF95%F290%E685%D980%CC75%BF70%B365%A660%9955%8C50%8045%7340%6635%59原创 2016-01-04 18:36:02 · 485 阅读 · 0 评论 -
ThreadPoolExecutor运转机制详解
最近发现几起对ThreadPoolExecutor的误用,其中包括自己,发现都是因为没有仔细看注释和内部运转机制,想当然的揣测参数导致,先看一下新建一个ThreadPoolExecutor的构建参数:[java] view plaincopypublic ThreadPoolExecutor(int corePoolSize,转载 2015-09-06 11:40:32 · 411 阅读 · 0 评论 -
ListView的性能优化之convertView和viewHolder
ListView优化大致从以下几个角度:1.复用已经生成的convertView;2.添加viewHolder类;3.缓存数据(图片缓存);4.分页加载。一、复用convertView首先讲下ListView的原理:ListView中的每一个Item显示都需要Adapter调用一次getView的方法,这个方法会传入一个convertView的参数,返回的View就转载 2015-09-10 11:30:37 · 467 阅读 · 0 评论 -
AndroidStudio 默认快捷键映射
https://www.jetbrains.com/idea/docs/IntelliJIDEA_ReferenceCard.pdf常用:打开“设置”菜单 CTRL+ALT+S改变虚拟机屏幕方向 CTRL+F11任意搜索 双击SHIFT通过名字打开文件 CTRL+SHIFT+N最近原创 2015-07-07 12:45:13 · 551 阅读 · 0 评论 -
严苛模式(StrictMode)
Android 2.3提供一个称为严苛模式(StrictMode)的调试特性,Google称该特性已经使数百个Android上的Google应用程序受益。那它都做什么呢?它将报告与线程及虚拟机相关的策略违例。一旦检测到策略违例(policy violation),你将获得警告,其包含了一个栈trace显示你的应用在何处发生违例。你可以强制用警告代替崩溃(crash),也可以仅将警告计入日志,让你的转载 2015-08-23 17:57:56 · 345 阅读 · 0 评论 -
无线设备状态机(The Radio State Machine)
1.无线设备状态机(The Radio State Machine)典型的3G网络下的的网络无线设备包括下列三种耗能状态:1. Full power : 当一个网络连接处于激活状态时,允许设备以最快的速率传输数据。2. Low power : 一种中间状态,使用Full power状态下50%的能量损耗。3. Standby : (备用) 没有网络处于活跃状态时候的能量转载 2015-08-25 19:20:27 · 647 阅读 · 0 评论 -
Android 应用启动界面自定义
在新的Material Design规范中,讲到了 Launch Screens(启动界面),这里的启动界面不是大家常见的 Splash Screen,本文介绍如何在 Android 应用中实现一个自定义的启动界面。大家都知道,当你从桌面上点击一个应用到执行该 Activity 的 onCreate() 函数是需要一定的时间的,尤其是该应用从来也没使用过的情况下,该时间会比较长。And转载 2015-08-25 21:37:29 · 1174 阅读 · 0 评论 -
Android的HTTP客户端选择及HttpResponseCache的使用
据Android Dalvik团队的Jesse Wilson 同学讲, 在Android系统中可以使用两种HTTP客户端来收发HTTP数据.一个就是大名鼎鼎的Apache HTTP Client, 而另外一个就是 HttpURLConnection.Apache HTTP ClientDefaultHttpClient 和她的兄弟 AndroidHttpClient 是用于转载 2015-08-25 20:59:23 · 1664 阅读 · 0 评论 -
@SuppressLint("NewApi")和@TargetApi()的区别
在Android代码中,我们有时会使用比我们在AndroidManifest中设置的android:minSdkVersion版本更高的方法,此时编译器会提示警告,解决方法是在方法上加上@SuppressLint("NewApi")或者@TargetApi()。那他们之间有什么区别呢,很简单,@SuppressLint("NewApi")屏蔽一切新api中才能使用的方法报的andr转载 2015-08-29 20:26:55 · 779 阅读 · 0 评论 -
Android DownloadManager 的使用及断点续传
官方API:http://developer.android.com/reference/android/app/DownloadManager.htmlClass OverviewThe download manager is a system service that handles long-running HTTP downloads. Clients ma原创 2015-08-29 11:16:19 · 11246 阅读 · 0 评论 -
Activity Task 详解
task是一个具有栈结构的容器,可以放置多个Activity实例。启动一个应用,系统就会为之创建一个task,来放置根Activity;默认情况下,一个Activity启动另一个Activity时,两个Activity是放置在同一个task中的,后者被压入前者所在的task栈,当用户按下后退键,后者从task被弹出,前者又显示在幕前,特别是启动其他应用中的Activity时,两个Activity对转载 2015-08-31 11:35:53 · 633 阅读 · 0 评论 -
AsyncTask的版本兼容性与target sdk version
最近发现了一个奇怪的问题,一处很久前写的代码,通过AsyncTask的doInBackground进行后台处理,突然间不管用了,就是说doInBackground没有被执行。同事查询SVN,发现相关代码没有过任何更改,经过很久的检查,发现只有在Manifest中有一处很小的改动,就是添加了targetSDKVersion。将这个属性去掉,就没有问题了。 通过对源码和google g转载 2015-08-05 10:13:23 · 397 阅读 · 0 评论 -
应用内存优化之OnLowMemory&OnTrimMemory
1.应用内存onLowMemory& onTrimMemory优化onLowMemory& onTrimMemory简介:OnLowMemory是Android提供的API,在系统内存不足,所有后台程序(优先级为background的进程,不是指后台运行的进程)都被杀死时,系统会调用OnLowMemory。OnTrimMemory是Android 4.0之后提供的API,系统会转载 2015-09-04 13:22:57 · 407 阅读 · 0 评论 -
Android开发中高效的数据结构用SparseArray代替HashMap
android开发中,在java2ee或者android中常用的数据结构有Map,List,Set,但android作为移动平台,有些api(很多都是效率问题)显然不够理想,本着造更好轮子的精神,android团队编写了自己的api用来代替java api1、SimpleArrayMap与ArrayMap实质上ArrayMap继承自SimpleArrayMap,主要是为了实现像Ha转载 2015-09-04 14:36:51 · 442 阅读 · 0 评论 -
Android UI 调试工具 Hierarchy Viewer
Hierarchy Viewer 是 Android SDK 提供的,用来调试 UI 的工具,它位于 sdk 的 tools 目录下。The Hierarchy Viewer application allows you to debug and optimize your user interface. It provides a visual representation of the原创 2015-09-05 17:40:11 · 883 阅读 · 0 评论 -
android 事件处理机制之requestDisallowInterceptTouchEvent
当手指触摸到屏幕时,系统就会调用相应View的onTouchEvent,并传入一系列的action。当有多个层级的View时,在父层级允许的情况下,这个action会一直向下传递直到遇到最深层的View。所以touch事件最先调用的是最底层View的onTouchEent,如果View的onTouchEvent接收到某个touch action并作了相应处理,最后有两种返回方式return t转载 2016-01-07 22:09:40 · 457 阅读 · 0 评论