Android
文章平均质量分 64
Android
二一点
上善若水 夫唯不争 故无尤!
展开
-
通俗易懂RESTful,如何设计RESTful风格API
REST -- REpresentational State Transfer 直译:表现层状态转移。这个中文直译经常出现在很多文章中。尼玛,谁听得懂“表现层状态转移”,这是人话吗?那就逐个单词来理解REST名称REST -- REpresentational State Transfer首先,之所以晦涩是因为前面主语被去掉了,全称是 Resource Representati原创 2017-11-07 17:07:32 · 38360 阅读 · 24 评论 -
Android中Service(服务)详解,四大组件之一:Service
一、 Service简介Service是android 系统中的四大组件之一(Activity、Service、BroadcastReceiver、ContentProvider),它跟Activity的级别差不多,但不能自己运行只能后台运行,并且可以和其他组件进行交互。service可以在很多场合的应用中使用,比如播放多媒体的时候用户启动了其他Activity这个时候程序要在后台继续播放,比转载 2015-12-25 15:05:28 · 1529 阅读 · 0 评论 -
Activity四种启动模式:standard、singleTop、singleTask、singleInstance
Activity启动方式有四种,分别是:standard、singleTop、singleTask、singleInstance可以根据实际的需求为Activity设置对应的启动模式,从而可以避免创建大量重复的Activity等问题。设置Activity的启动模式,只需要在AndroidManifest.xml里对应的标签设置android:launchMode属性,例如:<a转载 2015-12-24 18:15:57 · 791 阅读 · 0 评论 -
Android HTTP 请求超过超时时间未返回 报错java.net.UnknownHostException: Unable to resolve host
现象:手机连接WIFI,但未连接外网。设置urlCon.setConnectTimeout(5000); urlCon.setReadTimeout(8000); 在Android发送Http请求时,时间超过设置的超时时间仍未返回。HTTP框架使用的是开源的Android Asynchronous Http Client。原因:在发送Http请求时,先要建立连接,设置的地址为域名,非IP。原创 2015-11-02 18:03:16 · 18838 阅读 · 1 评论 -
LinearLayout中的控件两端对齐 或 Button、TextView左右对齐
在android中的控件LinearLayout 中的android:gravity="center" 属性,要么是居左、居右、居中对齐,不能达到双控件 两端对齐,要实现两端对齐方式,要采用 中间增加一个控件的方式实现 ,并设置属性weight=1。<LinearLayout android:layout_width="match_parent" android:layout原创 2015-10-30 10:13:39 · 7959 阅读 · 0 评论 -
Android 获取有TabActivity继承关系的子类名的方法 及 获取Activity类名的方法
Android中的任务等等都是通过栈来管理的,Activities的管理也不例外。它的先进后出特性让Android可以很容易实现从当前Activity回到或者重新启动先前的Activity。(注:当系统资源匮乏的时候,系统会释放先前Activity占用资源,因此当从当前Activity返回先前的Activity的时候,先前的Activity会被重新创建)、简单的说,回到先前的Activit原创 2015-10-27 16:28:43 · 3741 阅读 · 0 评论 -
Android 定时器的实现方式(TimerTask、Handler)及 Handler使用解析
一、Handler的定义:主要接受子线程发送的数据, 并用此数据配合主线程更新UI。对于线程的控制,使用Handler可以对运行在不同线程中的多个任务进行排队,并使用Message和Runnable对象安排这些任务。在javadoc中,对Handler是这样解释的:Handler可以发送和处理消息对象或Runnable对象,这些消息对象和Runnable对象与一个线程相关联。每个Handler的实原创 2015-10-27 15:19:44 · 15728 阅读 · 1 评论 -
android studio编译项目,9 patch图片报错Crunching Cruncher
将Eclipse的项目导入到AS中,一部分*.9.png格式图片报如下错误。Error:Execution failed for task ':generalAPPN:mergeDebugResources'.> Crunching Cruncher mc_btn_top_pressed.9.png failed, see logs解决方案:1、有可能这张图片就是一张普通的图片,加了一个原创 2015-09-23 18:01:21 · 27247 阅读 · 12 评论 -
LocalActivityManager说明 及 Activity的onResume不被执行问题
LocalActivityManager类概述Helper class for managing multiple running embedded activities in the same process. This class is not normally used directly, but rather created for you as part of theActivity原创 2015-10-19 11:19:27 · 3531 阅读 · 0 评论 -
Android Studio 补全提示,类似Eclipse快捷键"Alt+/"的用法
1、打开Android Studio2、选择File--> Settings,或者按快捷键“Ctrl+Alt+S”进入设置界面3、在设置界面中找到Keymap , 或者直接在搜索框中输入keymap,出现如下界面图片中“Completion-->Basic”,点击鼠标右键,先选择"Romve"掉快捷键,然后再选择“Add Keyboard Shortcut”填入你想要的快捷键,由于原创 2016-03-30 15:03:51 · 7564 阅读 · 0 评论 -
Android中intent的作用,显式意图和隐式意图
Android基本的设计理念是鼓励减少组件间的耦合,因此Android提供了Intent (意图) ,Intent提供了一种通用的消息系统,它允许在你的应用程序与其它的应用程序间传递Intent来执行动作和产生事件。使用Intent可以激活Android应用的三个核心组件:活动、服务和广播接收器。Intent可以划分成显式意图和隐式意图。显式意图:调用Intent.setComponent原创 2016-04-01 18:17:03 · 2500 阅读 · 0 评论 -
Android Studio运行NDK程序,简单的JNI实例
一、JNI概述JNI 是Java Native Interface的缩写,中文翻译为“Java本地调用”,JNI 是本地编程接口。它使得在 Java 虚拟机 (VM) 内部运行的 Java 代码能够与用其它编程语言(如 C、C++ 和汇编语言)编写的应用程序和库进行互操作。就是说,JNI是一种技术,通过这种技术可以做到两点:1.Java程序中的函数可以调用Native语言写的函数,Nati原创 2016-04-05 17:42:07 · 2984 阅读 · 0 评论 -
JSTL标签不起作用,JSTL标签直接输出表达式
jstl标签不起作用不管用,jstl标签直接输出表达式解决办法:在jsp页面头上 引入: 问题解决。原创 2016-06-11 15:50:52 · 802 阅读 · 0 评论 -
Android onClick 按钮单击事件 四种常用写法
这里使用四种onClick单击事件,来实现电话拔号器的DEMO。XML文件 <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="phone" android:ems="原创 2015-07-19 11:23:57 · 58268 阅读 · 4 评论 -
如何使用SQLite数据库,android SQLiteOpenHelper使用实例
我们大家都知道Android平台提供给我们一个数据库辅助类来创建或打开数据库,这个辅助类继承自SQLiteOpenHelper类,在该类的构造器中,调用Context中的方法创建并打开一个指定名称的数据库对象。继承和扩展SQLiteOpenHelper类主要做的工作就是重写以下两个方法:onCreate(SQLiteDatabase db) : 当数据库被首次创建时执行该方法,一般将创建表等初原创 2016-04-11 14:21:33 · 2158 阅读 · 0 评论 -
java.lang.IllegalArgumentException: Service Intent must be explicit 异常说明
问题现象:在Android 5.0采用隐式意图启动方式,如下:Intent intent = new Intent("com.haier.oet.test");bindService(intent, conn, Context.BIND_AUTO_CREATE);运行后,产生了如下所示的bug:04-27 12:09:49.033 718-718/com.haier.oet.an原创 2016-04-27 12:16:40 · 1763 阅读 · 0 评论 -
Android中AIDL使用 及 AIDL实现进程间的通信
1、什么是AIDLAIDL(Android Interface Definition Language)是一种接口定义语言,编译器通过*.aidl文件的描述信息生成符合通信协议的Java代码,我们无需自己去写这段繁杂的代码,只需要在需要的时候调用即可,通过这种方式我们就可以完成进程间的通信工作。2、为什么要有AIDL无论学什么东西,最先得弄明白为什么要有这个东西,不要说存在即是合理原创 2016-04-27 11:53:41 · 2895 阅读 · 0 评论 -
Android 应用内多进程实现 单APK应用多进程
Android平台支持多进程通信,也支持应用内实现多进程,Android中,默认一个APK包就对应一个进程,其进程名就为AndroidManifest.xml文件中 指定的package名。我们可以通过Activity,Service,BroadCastReceiver,ContentProvider的android:process属性来实现单APK多进程,但是需要注意进程间内存的不可见性。原创 2016-04-13 15:26:40 · 5823 阅读 · 3 评论 -
Android 进程与线程基础知识 及 如何停止进程
当一个程序第一次启动的时候,Android会启动一个LINUX进程和一个主线程。默认的情况下,所有该程序的组件都将在该进程和线程中运行。同时,Android会为每个应用程序分配一个单独的LINUX用户。Android会尽量保留一个正在运行进程,只在内存资源出现不足时,Android会尝试停止一些进程从而释放足够的资源给其他新的进程使用,也能保证用户正在访问的当前进程有足够的资源去及时地响应用户转载 2016-04-13 11:55:54 · 2451 阅读 · 0 评论 -
android系统架构分析
我们对android有了个大致的了解,知道如何搭建android的环境及简单地写一个HelloWorld程序,而且知道一个android项目包括哪些文件夹和文件及相应的作用。本篇将站在顶级的高度——架构,来看android。我开篇就说了,这个系列适合0基础的人且我也是从0开始按照这个步骤来学的,谈架构是不是有点螳臂挡车,自不量力呢?我觉得其实不然,如果一开始就对整个android的架构了然于胸,就原创 2016-04-08 16:00:13 · 6614 阅读 · 0 评论 -
Android Handler 四个使用实例 及HandlerThread的使用
当应用程序启动时,Android首先会开启一个主线程 (也就是UI线程),主线程为管理界面中的UI控件,进行事件分发,比如说:点击一个Button,Android会分发事件到Button上,来响应你的操作。如果此时需要一个耗时的操作。例如: 联网读取数据,或者读取本地较大的一个文件的时候,你不能把这些操作放在主线程中,如果你放在主线程中的话,界面会出现假死现象,如果5秒钟还没有完成的话,会收到An原创 2015-09-06 17:49:47 · 6422 阅读 · 2 评论 -
Android 为什么计算不出准确的屏幕尺寸的原因,及 Android 获得屏幕物理尺寸、密度及分辨率
DPI:dots-per-inch,每英寸的像素数量,也就是说,密度越大,每英寸内容纳的点数就越多。这个值是设备自己决定并写死的。计算方法:获取到屏幕的分辨率:point.x和point.y,再取出屏幕的DPI(每英寸的像素数量),计算长和宽有多少英寸,即:point.x / dm.xdpi,point.y / dm.ydpi,屏幕的长和宽算出来了,再用勾股定理,计算出斜角边的长度,即屏幕尺寸原创 2015-08-06 16:48:54 · 3220 阅读 · 0 评论 -
Android 异常 android.os.NetworkOnMainThreadException
最近在实现一个Android下的数据采集的SDK,收集用户使用数据使用HTTP发送到云平台,进行数据分析。但在发送数据时报如下错误:Caused by: android.os.NetworkOnMainThreadException产生的原因,官方解释:Class OverviewThe exception that is thrown when an application att原创 2015-07-29 18:05:03 · 16169 阅读 · 0 评论 -
Activity详解(生命周期、启动方式、状态保存,完全退出等)
一、什么是Activity?简单的说:Activity就是布满整个窗口或者悬浮于其他窗口上的交互界面。在一个应用程序中通常由多个Activity构成,都会在Manifest.xml中指定一个主的Activity,如下设置 <activity android:name="com.haier.uhome.ubic.activity.MainActivity" android:configC原创 2015-07-14 09:55:13 · 1832 阅读 · 0 评论 -
JAVA 中 CharSequence 类型
charSequence是一个接口,表示char值的一个可读序列。此接口对许多不同种类的char序列提供统一的自读访问。此接口不修改该equals和hashCode方法的常规协定,因此,通常未定义比较实现 CharSequence 的两个对象的结果。他有几个实现类:CharBuffer、String、StringBuffer、StringBuilder。 CharSequence与S原创 2015-07-07 10:29:57 · 31468 阅读 · 6 评论 -
Android studio 如何删除项目 module
在Android Studio中想要删除某个module时,在Android Studio中选中module,右键发现没有delete,如图:Android Studio对module做了一个保护机制,module是不能随意删除的,要删除必须先从module列表中移除。移除方式有两种:1、File菜单下Project structure...,选中你要移除的mo原创 2015-07-12 21:07:45 · 23938 阅读 · 0 评论 -
Android studio 类似于eclipse 中的 Ctrl+1 快捷键(quick fixes available)
使用android studio 出现红色下划线代表有错误产生,eclipse中的Ctrl+1(quick fixes available)可以快速修复错误。android studio 使用快捷键Alt + Enter 就可以调出quick fixes availabe。在IntelliJ IDEA 14.1.1 Help帮助文档中找到了解决方案:帮助文档:h原创 2015-07-12 21:58:31 · 26410 阅读 · 1 评论 -
Android Studio 显示函数用法提示悬浮窗,解决fetching documentation问题
Eclipse有一个很好的功能,就是当代码调用某个android API时,鼠标移到对应的函数或者方法上,就会自动有一个悬浮窗提示该函数的说明(所包含的参数含义,方法功能)。但是在Android Studio鼠标移到函数上,发现悬浮窗不出来了。Android Studio如何查看函数的说明呢。选中要查看的函数,然后按F2,悬浮窗就出来了。另一个问题,按F2后,Andro原创 2015-07-12 21:33:38 · 25646 阅读 · 9 评论 -
Android Quantity Strings 的 getQuantityString方法取值问题
不同的语言对数量的语法规定有不同的规则。在英语里面,例如,1是特例。我们会直接写1book,而针对一个以上的我们会在book后加复数形式。这种区别对单数和复数来说是很普遍的。对Android来说,它支持zero,one,two,few,many,和other。 对一个给定的语言和数字来说,决定使用哪一个case的规则是很复杂的,所以android提供了方法getQuantityStr原创 2015-07-07 16:54:45 · 9407 阅读 · 0 评论 -
Fetching Android SDK component information
在第一运行Android Studio时会遇到如下情况:Fetching Android SDK component information很长时间没有反应。这是在检查你的 Android SDK 。有人会在这里卡上很长时间,很大的原因就是:网络连接有问题。如果想跳过这一步,可以进行如下操作:在Android Studio安装目录下的 bin 目录下,找到原创 2015-06-27 10:27:55 · 773 阅读 · 0 评论 -
Android 回调接口是啥,回调机制详解
首先解决啥是回调:举个例子:某天,我打电话向你请教问题,当然是个难题,你一时想不出解决方法,我又不能拿着电话在那里傻等,于是我们约定:等你想出办法后打手机通知我,这样,我就挂掉电话办其它事情去了。过了XX分钟,我的手机响了,你兴高采烈的说问题已经搞定,应该如此这般处理。C不会自己调用b,C提供b的目的就是让S来调用它,而且C不得不提供。S并不知道C提供的b是什么,因此S会约定b原创 2015-07-16 22:45:27 · 24715 阅读 · 6 评论 -
Android下的Junit单元测试
Android开发中,单元测试是必不可少的,配置Junit相对简单,步骤如下:第一步:首先在AndroidManifest.xml中加入下面红色代码:<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.haier.junit" android:versi原创 2015-07-04 22:52:18 · 1830 阅读 · 0 评论 -
Activity 重载方法 onStart和onResume、onPause和onStop的区别
Android Activity细化出onCreate、onStart、onResume、onPause、onStop、onDesdroy方法让应用去重载。这些重载表明了整个Activity的生命周期。在前面一篇文章《Activity详解(生命周期、启动方式、状态保存,完全退出等)》中研究了各重载方法的回调时机。那么问题来了:onStart、onResume和onPause、onStop都原创 2015-07-17 14:01:40 · 16643 阅读 · 0 评论 -
Android 对话框(Dialog) 及 自定义Dialog
Activities提供了一种方便管理的创建、保存、回复的对话框机制,例如 onCreateDialog(int), onPrepareDialog(int, Dialog), showDialog(int), dismissDialog(int)等方法,如果使用这些方法的话,Activity将通过getOwnerActivity()方法返回该Activity管理的对话框(dialog).on原创 2015-08-18 17:25:54 · 16667 阅读 · 1 评论 -
Android studio 报错 Failed to complete Gradle execution already disposed:module:'***'
删除了Modul后,进行delect文件,之后建立一个新的同名Modul(如:sendsms,之前删除的也是sendsms),进行编译报:弹出框报错:Failed to complete Gradle execution.Cause:Already disposed:module:'sendsms'有时这个错误会导至布局文件不能以Design方式打开,报如下错误。原创 2015-07-15 22:23:45 · 18046 阅读 · 2 评论 -
Android SQLite 简单使用示例
SQLite简介Google为Andriod的较大的数据处理提供了SQLite,他在数据存储、管理、维护等各方面都相当出色,功能也非常的强大。袖珍型的SQLite可以支持高达2TB大小的数据库,每个数据库都是以单个文件的形式存在,这些数据都是以B-Tree的数据结构形式存储在磁盘上。在事务处理方面,SQLite通过数据库级上的独占性和共享锁来实现独立事务处理。这意味着多个进程可以在同一原创 2015-08-16 11:52:23 · 2903 阅读 · 0 评论 -
Android ImageView 不显示JPEG图片 及 Android Studio中如何引用图片资源
Android ImageView 不显示JPEG图片 今天在写一个小实例,ImageView在xml里面设置的是INVISIBLE,在代码里需要设置成setVisibility(View.VISIBLE),但图片没有显示出来,换成PNG或其它的JPEG格式的图片确可以正常的显示。原因:显示的图片大小为5.39K,图片格式有损坏,所以不能正常显示。解决:换一张图片,或重新生成JPE原创 2015-08-02 11:50:52 · 37666 阅读 · 0 评论 -
Android Studio 单元测试(instrumentation)
之前写过一篇博文《Android下的Junit单元测试》,是基于Eclipse开发环境的,原文链接:http://blog.csdn.net/a78270528/article/details/46758751最近在研究Android Studio,发现在AS下的单元测试要简单得多。一、在创建项目时,AS已经为我们自动创建了一个AndroidTest的包:原创 2015-07-19 20:24:36 · 17429 阅读 · 0 评论 -
Android Studio 设置项目Module编码,解决Android Studio项目运行时乱码问题
Android Studio的项目设置逻辑与Eclipse有很大的区别,执行的操作为File->Setting->File Encodings然后来进行设置,如图所示:打开module的 build.gradle 文件修改编译器使用的编码,经过上面的设置,只能影响你在IDE 里面编辑器视图里面看到的文件内容的编码。编译器使用的编码还需要单独设置,否则 gradle 默认使用 utf-8 的原创 2015-08-02 14:31:29 · 12288 阅读 · 1 评论 -
Android enum(枚举类型)使用详解
原始的接口定义常量:public interface IConstants { String MON = "Mon"; String TUE = "Tue"; String WED = "Wed"; String THU = "Thu"; String FRI = "Fri"; String SAT = "Sat"; String S原创 2015-07-18 22:13:01 · 41948 阅读 · 4 评论