android学习之小强
bulebirds
开发
展开
-
Android菜鸟的成长笔记(1)——Android开发环境搭建从入门到精通
今天在博客中看到好多Android的初学者对Android的开发环境的搭建不熟悉而导致不能进行学习,所以我决定自己写一个搭建过程的文章。一、JDK安装http://www.oracle.com/index.html 下载地址选择JavaSE JDK进行下载下载下来后进行安装(默认步骤安装)设置环境转载 2014-04-15 10:29:49 · 641 阅读 · 0 评论 -
Android菜鸟的成长笔记(23)——获取网络和SIM卡信息
TelephonyManager是一个管理手机通话状态、电话网络信息的服务类,该类提供了大量的getXxx()方法来获取电话网络的相关信息。这些信息包括设备编号、软件版本、网络运营商代号、网络运营商名称、手机制式、设备当前位置、SIM卡的国别、SIM卡序列号等。下面来实际看一下:MainActivity.javapackage com.example.tel转载 2014-04-16 09:27:36 · 807 阅读 · 0 评论 -
Android菜鸟的成长笔记(14)—— Android中的状态保存探究(上)
我们在用手机的时候可能会发现,即使应用被放到后台再返回到前台数据依然保留(比如说我们正在玩游戏,突然电话来了,当接完电话游戏继续玩),某些应用甚至会保留你离开时候的状态及数据,这些原理是什么?怎么去实现这样的应用?这将是我们这一篇文章要解开的问题。有一句很常见的代码如下,很多人不知道为什么要加这么一句话@Override protected void onCr转载 2014-04-16 09:21:00 · 475 阅读 · 0 评论 -
Android菜鸟的成长笔记(17)—— 再看Android中的Unbounded Service
前面已经写过关于startService(Unbounded Service)的一篇文章:《Android菜鸟的成长笔记(16)——Service简介》本篇将在这一篇的基础上再来看一下startService的用法。先看一段代码:TestService.javapackage com.example.myfirstapp; import android转载 2014-04-16 09:23:50 · 537 阅读 · 0 评论 -
Android菜鸟的成长笔记(22)——Android进程间传递复杂数据(AIDL)
在上一篇中介绍了Andorid中的进程间的通信方式AIDL,本篇文章将介绍传递复杂数据的AIDL Service下面通过一个示例说明:本例子中用到了两个自定义类型:Person与Pet, 其中Person对象作为调用远程Service的参数,而Pet将作为返回值。就像RMI要求远程调用的参数和返回值必须实现Serializable接口,Android要求调用远程Service的参数转载 2014-04-16 09:27:04 · 538 阅读 · 0 评论 -
Android菜鸟的成长笔记(20)——IntentService
前面介绍的Service在官方文档介绍中说Service存在着如下两个问题:1.A Service is not a separate process. The Service object itself does not imply it is running in its own process; unless otherwise specified, it runs in t转载 2014-04-16 09:25:21 · 612 阅读 · 0 评论 -
Android菜鸟的成长笔记(13)——异步任务(Async Task)
Android的UI线程主要负责处理用户的事件及图形显示,因此主线程UI不能阻塞,否则会弹出一个ANR(Application Not Responding)异常,所以不能在UI线程中执行耗时操作。AsyncTaskAsyncTaskParams:启动任务执行的输入参数的类型Progress:后台任务完成的进度值的类型Result:后台执行任务完成后返回结果的类型例转载 2014-04-16 09:20:11 · 707 阅读 · 0 评论 -
Android菜鸟的成长笔记(16)——Service简介
Service是Android四大组件之一1、Service与Activity的区别在:Service一直在后台运行,没有用户界面。2、选择Activity与Service的标准:如果某个程序组件需要在运行时向用户呈现某种界面,或者改程序需要和用户进行交互,就需要用Activity,否则需要考虑使用Service.3、Android系统本身提供了大量的Service组件,开转载 2014-04-16 09:23:14 · 488 阅读 · 0 评论 -
Android菜鸟的成长笔记(18)——绑定本地Service并与之通信
在上一篇中介绍了Service与Activity的区别及Service两种启动方式中的第一种启动方式startService().我们会发现用startService()、stopService()方法启动和关闭一个Service时,Service与访问者之间基本上不存在太多的关联,因此Service和访问者之间也无法进行通信和数据交换。如果要实现Service与Activity之间的通信转载 2014-04-16 09:24:31 · 552 阅读 · 0 评论 -
Android菜鸟的成长笔记(24)——Android中的振动器
在某些时候,程序需要启动系统振动器,比如手机静音时使用振动提示用户;再比如玩游戏时,当系统碰撞、爆炸时使用振动带给用户更逼真的体验等。总之,振动是除视频、声音之外的另一种“多媒体”,充分利用系统的振动器会带给用户更好的体验。系统获取Vibrator也是调用Context的getSystemService()方法即可,接下来就可以调用Vibrator的方法来控制手机震动了。转载 2014-04-16 09:28:35 · 578 阅读 · 0 评论 -
Android菜鸟的成长笔记(25)——可爱的小闹钟
摘要:这一篇主要使用系统为我们提供的一个服务AlarmManager来制作一个Android小闹钟,同时还涉及到了自定义主题、判断第一次启动应用、自定义动画、对话框、制作指导滑动页面等方面。最后形成一个可以直接在手机上面使用的小闹钟。开始启动界面AppStart.javapackage com.example.alarmtest; import转载 2014-04-16 09:29:21 · 1009 阅读 · 0 评论 -
Android菜鸟的成长笔记(21)——跨进程调用Service
我们都知道在Android中的每一个应用是一个进程,其实每一个应用就相当于Linux系统里面的一个用户,进程和进程之间的通信其实就相当于用户和用户之间的通信,为了实现这种跨进程通信,Android提供了AIDL Service ( Android Interface definition language).与邦等本地Service不同的是,本地Service的onBind()方法会直接把转载 2014-04-16 09:26:21 · 516 阅读 · 0 评论 -
Android菜鸟的成长笔记(19)——Service的生命周期
前面两篇文章介绍了关于Service的两种启动方式,简要总结如下:Context.startService() Context.bindService()1. startService()的目的是回调onStart()方法,onCreate() 方法是在Service不存在的时候调用的,如果Service存在(例如之前调用了bindService,那么Service的onC转载 2014-04-16 09:24:57 · 642 阅读 · 0 评论 -
Android菜鸟的成长笔记(15)—— Android中的状态保存探究(下)
在上一篇中我们简单了解关于Android中状态保存的过程和原理,这一篇中我们来看一下在系统配置改变的情况下保存数据及恢复数据的过程。下面我们先来看一个现象:(代码在 Android中状态保存探究(上)中)先启动应用如下:打印的Log再翻转屏幕打印的Log如下可以看到每翻转一次屏幕实际上系统会停止原理的a转载 2014-04-16 09:21:27 · 606 阅读 · 0 评论 -
Android菜鸟的成长笔记(2)——第一个Android应用
在上一篇Android菜鸟的成长笔记(1)中我们已经介绍了Android环境的搭建,下面我们就来开发一个属于我们自己的好玩的应用吧,是不是已经迫不及待了,下面我们先来看看运行效果。首先我们要创建一个手机模拟器点击eclipse上面的模拟器图标,弹出如下弹框。点击右边的New...按钮,我们来创建一个“手机”,这个手机几乎和我们用的真实手机相同,我们叫转载 2014-04-15 10:31:11 · 489 阅读 · 0 评论 -
Android菜鸟的成长笔记(5)——Android系统源代码你下载了吗?
在上一篇中我们用Android系统源代码分析了我们前面写的代码,有的朋友可能就会问怎么才能下载到Google官方的源代码呢?下面我们通过Git管理工具来对Android系统源代码进行下载。另外为了方便有的朋友下载,我将下载好的各个版本的源码存放到360云盘,云盘下载链接如下:http://yunpan.cn/QDEkq3uFrbvrI (访问密码:968e)首先下载Git版本管转载 2014-04-15 10:45:00 · 718 阅读 · 0 评论 -
Android菜鸟的成长笔记(6)——剖析源码学自定义主题Theme
还记得在Android菜鸟的成长笔记(3)中我们曾经遇到了一个问题吗?"这个界面和真真的QQ界面还有点不同的就是上面的标题myFirstApp,怎么去掉这个标题呢?",当时我直接在AndroidMainfest.xml中添加了一个属性:android:theme="@android:style/Theme.NoTitleBar" 可能有的朋友就会迷惑了,为什转载 2014-04-15 10:45:42 · 710 阅读 · 0 评论 -
Android菜鸟的成长笔记(7)——什么是Activity
前面我们做了一个小例子,在分析代码的时候我们提到了Activity,那么什么是Activity呢?Activity是Android应用程序提供交互界面的一个重要组件,也是Android重要组件之一(另外3个是Service、BroadcastReceiver和ContentProvider)。与开发Web应用时建立Servlet类相似,建立自己的Activity也需要继承Activ转载 2014-04-15 10:48:00 · 583 阅读 · 0 评论 -
Android菜鸟的成长笔记(8)——Intent与Intent Filter(上)
Intent代表了Android应用的启动“意图”,Android应用将会根据Intent来启动指定组件,至于到底启动哪个组件,取决于Intent的各个属性。一、显式的Intent明确指定了要启动的组件的Intent我们称为显式的Intent例如:package com.example.testintent; import androi转载 2014-04-15 10:55:36 · 540 阅读 · 0 评论 -
Android菜鸟的成长笔记(9)——Intent与Intent Filter(下)
接着上一篇的内容,下面我们再来看看Intent的Data与Type属性。一、Data属性与Type属性Data属性通常用于向Action属性 提供操作的数据,Data属性接受一个Uri对象格式:scheme://host:port/path例如:content://com.android.contacts/contacts/1tel:123其中prot部分被省略转载 2014-04-15 10:57:15 · 545 阅读 · 0 评论 -
Android菜鸟的成长笔记(10)——使用Bundle在Activity之间传值
前面我们了解了如何启动一个Activity,一个Activity在启动另外一个Activity的时候可能会遇到需要传值的需要。Activity之间传值是通过Bundle来实现的。一、通过Bundle传值介绍Intent提供了多个重载方法来携带数据putExtras(Bundle data):向Intent中放入需要的数据包Bundle getExtras():取出Intent所转载 2014-04-15 10:57:51 · 636 阅读 · 0 评论 -
Android菜鸟的成长笔记(11)——Android中的事件处理
Android提供了两种方式来处理事件,一个是基于回调的事件处理,另一个是基于监听的事件处理,举个例子:基于回调的事件处理@Override public boolean onTouchEvent(MotionEvent event) { // TODO Auto-generated method stub return super.onT转载 2014-04-15 10:58:45 · 537 阅读 · 0 评论 -
Android菜鸟的成长笔记(4)——你真的理解了吗?
在上一篇中我们查看了QQ的apk源文件中的布局结构,并仿照QQ完成了我们第一个应用的界面,详细请看《Android菜鸟的成长笔记》专栏。这一篇中我们来具体看看这个界面到底是怎么呈现出来的,具体的原理是什么等问题,下面我们将一步一步的解开留在我们心中的谜团。有的朋友可能会产生这样的疑问为什么几句代码就能显示这样好看的界面?其实能让这个界面显示的如此丰富多彩,一半功劳在我们编写的那几句转载 2014-04-15 10:38:36 · 518 阅读 · 0 评论 -
Android菜鸟的成长笔记(3)——给QQ登录界面说So Easy
我们前面已经做了第一个Android应用程序,虽然有点像QQ的登录界面,但是很多地方还是很难看,这一篇咱们来将这个界面做成一个标准的商业界面,并一起来了解Android中的代码运行的原理。好吧,咱们开始吧,首先启动模拟器,为了让咱们的界面和QQ的登录界面一样我下载了一个QQ的apk文件,下面咱们将这个apk安装到我们的模拟器上,看看效果。怎么将apk安装到我们的模拟器上面呢?先给大转载 2014-04-15 10:31:56 · 741 阅读 · 0 评论 -
Android菜鸟的成长笔记(12)——Handler、Loop、MessageQueue
当一个程序第一次启动时,Android会启动一条主线程(Main Thread),主线程主要负责处理与UI相关的事件,如按键事件、触屏事件、绘图事件,主线程也被称为UI线程。UI的操作只能是通过主线程来操作,为了解决多线程操作UI的问题,就用到了Handler类。一、Handler类Handler类的作用有两个:1、在新启动的线程中发送消息。2、在主线程中获取、处理消息转载 2014-04-16 09:19:17 · 543 阅读 · 0 评论