Android
文章平均质量分 92
wx1qq1com
对待技术真诚一点。
展开
-
android手机定位
做移动互联网就不太可能不碰手机端的开发。上周为了项目需要,俺也挽袖子抡胳膊开始写起了android程序,还好有java基础,倒也上手快,写了几个小程序,主要都是关于定位方面的。网上也搜得到一些相关的文章和教程,但给出的例子效果不太好,而且感觉只有其表,却不明其理。因此写出此文,分享一些我的经验。虽然是以android为主,但是我想对其它平台的开发也应该有些帮助。这篇文章侧重于制定一个合理的转载 2011-11-14 13:48:44 · 604 阅读 · 0 评论 -
Android 避免内存泄露
我们大家都知道Android应用程序被限制在16MB的堆上运行,至少在T-Mobile G1上是这样。对于手机来说,这是很大的内存了;但对于一些开发人员来说,这算是较小的了。即使我们不打算使用掉所有的内存,但是,我们也应该尽可能少地使用内存,来确保其它应用程序得以运行。Android在内存中保留更多的应用程序,对于用户来说,程序间切换就能更快。我们调查了Android应用程序的内存泄露问题,并发现转载 2011-11-22 16:24:18 · 959 阅读 · 0 评论 -
Android 中Parcelable的作用
非原创,摘自JAVA EYEandroid提供了一种新的类型:Parcel。本类被用作封装数据的容器,封装后的数据可以通过Intent或IPC传递。 除了基本类型以外,只有实现了Parcelable接口的类才能被放入Parcel中。 Parcelable实现要点:需要实现三个东西1)writeToParcel 方法。该方法将类的数据写入外部提供的Parcel中.声明如下:w转载 2011-11-22 15:45:56 · 609 阅读 · 0 评论 -
android onNewIntent
在Android应用程序开发的时候,从一个Activity启动另一个Activity并传递一些数据到新的Activity上非常简单,但是当您需要让后台运行的Activity回到前台并传递一些数据可能就会存在一点点小问题。首先,在默认情况下,当您通过Intent启到一个Activity的时候,就算已经存在一个相同的正在运行的Activity,系统都会创建一个新的Activity实例并显示出来转载 2011-11-22 15:54:03 · 20431 阅读 · 6 评论 -
android中application 关于全局变量
android编程中,application这样的名词似乎变得那样的不常见,而让大家更为熟悉的是activity、intent、provider、broadcast和service。但其实android中的application也有着它自身的用处。 打开manifest文件,会看到有一个application配置标签,这就是有关application的使用了。那究竟application有什转载 2011-11-22 16:32:49 · 560 阅读 · 0 评论 -
Android中Intent传递对象的两种方法(Serializable,Parcelable)!
2010-07-16 22:13 21879人阅读 评论(99)收藏 举报大家好,好久不见,今天要给大家讲一下Android中Intent中如何传递对象,就我目前所知道的有两种方法,一种是Bundle.putSerializable(Key,Object);另一种是Bundle.putParcelable(Key, Object);当然这些Object是有一定的条件的,前者是实转载 2011-11-22 15:46:55 · 1714 阅读 · 0 评论 -
android之通过phoneStateListener监听电话状态改变
效果图当我们外部打电话过来的时候,当前的信息会自动的进行改变。-------------------------------------------------------------------------------activity代码:view plainpackage cn.com.chenzheng_java; import android.ap转载 2011-11-23 09:48:05 · 3747 阅读 · 0 评论 -
LayoutInflater的作用和使用方法
Android里面想要创建一个画面的时候, 初学一般都是新建一个类, 继承Activity基类, 然后在onCreate里面使用setContentView方法来载入一个在xml里定义好的界面.其实在Activity里面就使用了LayoutInflater来载入界面, 通过getSystemService(Context.LAYOUT_INFLATER_SERVICE)方法可以获得一个La转载 2011-11-24 14:39:19 · 555 阅读 · 0 评论 -
Android关于ListView的总结--使用ListActivity
ListActivity是一个专门显示ListView的Activity类,它内置了ListView对象,实现数据源的绑定与显示,数据源通常会是一个array或者一个拥有查询结果的cursor. 只要我们设置了数据源,ListView就会自动地显示出来。 ListActivity本身有一个默认的layout,其中包含一个全屏的list。如果用默认的layout,必须在onCreate()中转载 2011-11-24 15:12:01 · 1269 阅读 · 0 评论 -
Android 开发学习中 各种问题收集
1 学习listview 问题:Caused by: java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list' 解决:在布局中ListView 的id有问题 应该为“@android:id/list“ , 它是对应了androi原创 2011-11-24 17:12:39 · 573 阅读 · 0 评论 -
onRetainNonConfigurationInstance和getLastNonConfigurationInstance
第一篇: 很多网友可能知道Android横竖屏切换时会触发onSaveInstanceState,而还原时会产生onRestoreInstanceState,但是Android的Activity类还有一个方法名为onRetainNonConfigurationInstance和getLastNonConfigurationInstance这两个方法。 我们可以通过 onRetai转载 2011-11-24 17:23:47 · 7750 阅读 · 0 评论 -
Android onItemLongClick+onCreateContextMenu实现长按ListItem弹出不同菜单
2010-09-07 18:29 前一段时间做项目需要做一个效果:一个ListActivity,长按不同的item弹出的菜单不一样;如下图所示我们长按不同的item需要弹出不同标题的menu: 长按事件可以使用ListView的setOnItemLongClick函数进行关联,但是在响应的onItemLongClick函数里面没办法调用ListView显示菜单。转载 2011-11-24 15:03:00 · 7188 阅读 · 0 评论 -
Android获取手机和系统版本等信息的代码
有时候需要统计手机的型号和版本号,利用程序可以获取到相应的手机信息,对比两部手机发现,厂商不同,某个信息显示方式也不尽相同,具体见:String phoneInfo = "Product: " + android.os.Build.PRODUCT; phoneInfo += ", CPU_ABI: " + android.os.Build.CPU_ABI;转载 2011-11-25 14:30:35 · 722 阅读 · 0 评论 -
AsyncQueryHandler
Class OverviewA helper class to help make handling asynchronous ContentResolver queries easier.AsyncQueryHandler的目的就是为了将查询数据库的操作放到后台执行,当后台数据查询完了以后,再通知界面的更新,以此来提高前台页面的显示速度!内部的实现机制其实就是Handler,我们转载 2011-11-25 16:31:31 · 1251 阅读 · 0 评论 -
SimpleCursorAdapter ,SQLiteDatebase,ContentProvider 合用
注:由于转载时 代码乱了 ,所以没有加代码,不过有源代码。转:http://disanji.net/2011/04/03/android-use-simplecursoradapter/ 这个地址代码代码排版可以。如果使用Sqlite,建议和ContentProvider结合使用。这样数据库的生命周期就不用自己管了。然后,如果要在比如ListView中显示,可以使用CursorAdapt转载 2011-11-25 11:05:22 · 1404 阅读 · 0 评论 -
Android 获取AndroidManifest.xml文件versionCode,versionName属性
获取versionCode,versionName属性String pName = "cn.nedu.math.ninebox";try { packagemanager pm = getpackagemanager(); PackageInfo pinfo = pm.getPackageInfo(pName, PackageManager.GET_C转载 2011-11-25 14:27:58 · 6082 阅读 · 0 评论 -
ListView+AdapterView
在设计ListView的时候,因为采用了ListView的单击与List中Button的混合事件监听方案,所以不得不自己重写一个AdapterView来重载Button的监听。 自定义ListView的Adapter继承自BaseAdapter,其中有3个方法需要特别注意1、getView在这个方法中,完成自定义ListItem的绘制工作,还可以修改各种布局参数,当然Butto转载 2011-11-28 09:52:09 · 3691 阅读 · 0 评论 -
Matrix类
Matrix的操作,总共分为translate(平移),rotate(旋转),scale(缩放)和skew(倾斜)四种,每一种变换在 Android的API里都提供了set, post和pre三种操作方式,除了translate,其他三种操作都可以指定中心点。 set是直接设置Matrix的值,每次set一次,整个Matrix的数组都会变掉。转载 2011-11-08 17:47:32 · 660 阅读 · 0 评论 -
startActivityForResult的详细用法
在启动另外一个Activity的时候,有两种方法,一种是直接使用startActivity,另外一种就是使用startActivityForResult。前一种想必大家都明白怎么使用了,我就不废话了。本文主要通过一个Demo来学习一下第二种。startActivityForResult的主要作用就是它可以回传数据,假设我们有两个页面,首先进入第一个页面,里面有一个按钮,用于进入下一个页面,转载 2011-11-30 10:31:11 · 1211 阅读 · 0 评论 -
requestCode 和 resultCode
OK,代码如上,可能这个时候还会有点疑问,关于参数的疑问。直接看android sdk 帮助说得更清楚。我发现网上有些文章还有吧 requestCode 和 resultCode 混淆说明错的。startActivityForResult(Intent intent, Int requestCode)intent 传给B的,不解释,看不懂你还是玩玩手机算了,别想开发的事情了reques转载 2011-11-30 10:32:00 · 11487 阅读 · 0 评论 -
浅谈android的selector,背景选择器
关于listview和button都要改变android原来控件的背景,在网上查找了一些资料不是很全,所以现在总结一下android的selector的用法。首先android的selector是在drawable/xxx.xml中配置的。先看一下listview中的状态:把下面的XML文件保存成你自己命名的.xml文件(比如list_item_bg.xml),在系统使用时根据List转载 2011-11-30 13:53:36 · 530 阅读 · 0 评论 -
android:id 、@id、@+id 三者的区别
@id:表示引用已经有的id(自定义的id)“android:id”:表示引用系统已经有的id@+id:表示增加一个id原创 2011-11-30 14:06:15 · 727 阅读 · 0 评论 -
startService和bindService
Service的生命周期方法比Activity少一些,只有onCreate, onStart, onDestroy 我们有两种方式启动一个Service,他们对Service生命周期的影响是不一样的。1 通过startService Service会经历 onCreate --> onStart stopService的时候直接onDestroy转载 2011-11-30 15:03:57 · 564 阅读 · 0 评论 -
Android中BindService方式使用的理解
最近学习了一下Android里面的Service的应用,在BindService部分小卡了一下,主要是开始没有彻底理解为什么要这么实现。BindService和Started Service都是Service,有什么地方不一样呢:1. Started Service中使用StartService()方法来进行方法的调用,调用者和服务之间没有联系,即使调用者退出了,服务依然在进行【onCre转载 2011-11-30 15:05:05 · 575 阅读 · 0 评论 -
ANR
Android最佳实践之响应灵敏性可能会存在这样的情况,你写的代码通过了世界上所有的性能测试,但当用户尝试使用你的应用程序时,仍然让用户感到不爽。应用程序响应不够灵敏的地方包括——反映迟钝,挂起或冻结很长时间,或者需要花费很长的时间来处理输入。 在Android上,如果你的应用程序有一段时间响应不够灵敏,系统会向用户显示一个对话框,这个对话框称作应用程序无响应(ANR:Applic转载 2011-11-10 16:59:53 · 558 阅读 · 0 评论 -
Android最佳实践之流畅(Seamlessness)设计
即使你的应用程序是快速且响应灵敏的,但一些设计仍然会给用户造成问题——与其它应用程序或对话框未事先计划的交互,意外的数据丢失,意料之外的阻塞等等。避免这些问题,有助于理解应用程序运行的上下文和系统的交互过程,而这些又正影响着你的应用程序。简而言之,你应该竭尽全力去开发一个与系统和其它应用程序流畅交互的应用程序。一个常见的流畅问题是,一个应用程序的后台处理——例如,一个Service或者Broa转载 2011-11-10 17:03:30 · 642 阅读 · 0 评论 -
如何分析和研究Log文件
Log 在android中的地位非常重要,要是作为一个android程序员不能过分析log这关,算是android没有入门吧 。 下面我们就来说说如何处理log文件 。什么时候会有Log文件的产生 ?Log的产生大家都知道 , 大家也都知道通过DDMS来看log , 但什么时候会产生log文件呢 ?一般在如下几种情况会产生log文件 。 1,程序异常退出 , unc转载 2011-11-10 17:15:45 · 4773 阅读 · 0 评论 -
浅谈ANR如何分析解决ANR
一:什么是ANR ANR:Application Not Responding,即应用无响应二:ANR的类型 ANR一般有三种类型: 1:KeyDispatchTimeout(5 seconds) --主要类型 按键或触摸事件在特定时间内无响应转载 2011-11-10 17:09:19 · 10409 阅读 · 0 评论 -
Android ANR异常及解决方法
NRs (“Application Not Responding”),意思是”应用没有响应“。 在如下情况下,Android会报出ANR错误:– 主线程 (“事件处理线程” / “UI线程”) 在5秒内没有响应输入事件– BroadcastReceiver 没有在10秒内完成返回通常情况下,下面这些做法会导致ANR 1、在主线程内进行网络操作2、在主线程内进行一转载 2011-11-10 17:38:15 · 1040 阅读 · 0 评论 -
Android线程模型
当第一次启动一个Android程序时,Android会自动创建一个称为“main”主线程的线程。这个主线程(也称为UI线程)很重要,因为它负责把事件分派到相应的控件,其中就包括屏幕绘图事件,它同样是用户与Andriod控件交互的线程。比如,当你在屏幕上按下一个按钮后,UI线程会把这个事件分发给刚按得那个按钮,紧接着按钮设置它自身为被按下状态并向事件队列发送一个无效(invalidate)请求。UI转载 2011-11-11 11:19:33 · 434 阅读 · 0 评论 -
[Android环境搭建] INSTALL_FAILED_MISSING_FEATURE
[2011-11-11 15:05:12 - ApiDemos] Installing ApiDemos.apk...[2011-11-11 15:05:15 - ApiDemos] Installation error: INSTALL_FAILED_MISSING_FEATURE[2011-11-11 15:05:15 - ApiDemos] Please check logcat转载 2011-11-11 15:13:57 · 2063 阅读 · 0 评论 -
Android开发之多线程处理、Handler详解
很多初入Android或Java开发的新手对Thread、Looper、Handler和Message仍然比较迷惑,衍生的有HandlerThread、java.util.concurrent、Task、AsyncTask由于目前市面上的书籍等资料都没有谈到这些问题,今天Android123就这一问题做更系统性的总结。 Android开发过程中为什么要多线程我们创建的Service、A转载 2011-11-11 10:39:03 · 626 阅读 · 0 评论 -
Android中的Handler, Looper, MessageQueue和Thread
前几天,和同事探讨了一下Android中的消息机制,探究了消息的发送和接收过程以及与线程之间的关系。虽然我们经常使用这些基础的东西,但对于其内部原理的了解,能使我们更加容易、合理地架构系统,并避免一些低级错误。对于这部分的内容,将分成4小节来描述:1.职责与关系2.消息循环3.线程与更新4.几点小结----------------------------------转载 2011-11-11 10:39:47 · 453 阅读 · 0 评论 -
如何通过手势来控制图片的旋转
1. 区分拖动与缩放:根据motionEvent.getPointerCount()方法获取触点个数来判断,触点个数为1视为拖动,触点个数大于1视为缩放,网上使用多点触摸缩放图片的例子很多,自己去找一下,本站查“缩放”关键词就能找到很多答案,比如下面这个:http://www.eoeandroid.com/forum-viewthread-tid-62758-highlight-%E7%BC%转载 2011-12-05 15:23:54 · 3171 阅读 · 0 评论 -
获取view在屏幕中的位置
getLocalVisibleRect , 返回一个填充的Rect对象, 感觉是这个View的Rect大小,left,top取到的都是0getGlobalVisibleRect , 获取全局坐标系的一个视图区域, 返回一个填充的Rect对象;该Rect是基于总整个屏幕的getLocationOnScreen ,计算该视图在全局坐标系中的x,y值,(注意这个值是要从屏幕顶转载 2011-12-05 15:13:17 · 6708 阅读 · 0 评论 -
Android 调用系统Email、Phone、浏览器 和google地图简单实现
调用系统发短信的代码: view plainUri smsToUri = Uri.parse("smsto:");// 联系人地址 Intent mIntent = new Inten(android.content.Intent.ACTION_SENDTO,smsToUri); mIntent.putExtra("sms_body", "www.baidu转载 2011-12-07 15:33:04 · 12005 阅读 · 0 评论 -
Android SharedPreferences的使用
SharedPreferences是Android平台上一个轻量级的存储类,主要是保存一些常用的配置比如窗口状态,一般在Activity中 重载窗口状态onSaveInstanceState保存一般使用SharedPreferences完成,它提供了Android平台常规的Long长 整形、Int整形、String字符串型的保存,它是什么样的处理方式呢?SharedPreferences类似过去W转载 2011-12-08 11:22:45 · 967 阅读 · 0 评论 -
Android Layout标签之-viewStub,requestFocus,merge,include
定义Android Layout(XML)时,有四个比较特别的标签是非常重要的,其中有三个是与资源复用有关,分别是, , and。可是以往我们所接触的案例或者官方文档的例子都没有着重去介绍这些标签的重要性。: 此标签可以使UI在特殊情况下,直观效果类似于设置View的不可见性,但是其更大的(R)意义在于被这个标签所包裹的Views在默认状态下不会占用任何内存空间。viewStub通过in转载 2011-12-08 11:34:41 · 496 阅读 · 0 评论 -
Android ViewStub
在开发应用程序的时候,经常会遇到这样的情况,会在运行时动态根据条件来决定显示哪个View或某个布局。那么最通常的想法就是把可能用到的View都写在上面,先把它们的可见性都设为View.GONE,然后在代码中动态的更改它的可见性。这样的做法的优点是逻辑简单而且控制起来比较灵活。但是它的缺点就是,耗费资源。虽然把View的初始可见View.GONE但是在Inflate布局的时候View仍然会被Infl转载 2011-12-08 17:58:42 · 521 阅读 · 0 评论 -
View: VISIBLE,INVISIBLE,GONE的区别
View 的setVisibility有三个值可以设置: VISIBLE--->可见 INVISIBLE--->不可见,但这个View在ViewGroupt中仍保留它的位置,不重新layout GONE---->不可见,但这个View在ViewGroupt中不保留位置,重新layout,那后面的view就会取代他的位置。转:http://golight.blog.163转载 2011-12-09 13:08:56 · 532 阅读 · 0 评论