
Android
light_sky
热爱Android,热爱开源,GitHub:https://github.com/lightSky,微博:http://weibo.com/lightSkyStreet
展开
-
Layout--Linear与Relative
LinearLayout注意:LinearLayout的orientation如果没有设置,那么默认的就是horizontal水平方向layout_weight:用于给一个线性布局中的诸多视图的重要度赋值可以按照赋值来确定将要显示的比例按准确比例显示LinearLayout内各个子控件:如果为水平方向需设置android:layout_width="0d原创 2012-11-06 19:51:38 · 1245 阅读 · 0 评论 -
Android学习--使用Pull解析器读取XML文件、将对象写入XML文件
笔记摘要:这里介绍了一种XML文件的另一种解析方式,在Android中已经集成,应用比较广泛,同时我们可以使用Pull解析器对对象进行序列化,写入到Xml文件中。一、Pull解析器方式的介绍 除了可以使用SAX或DOM解析XML文件之外,还可以使用Android内置的Pull解析器解析XML文件。Pull解析器是一个开源的java项目,既可以用于Android, 也原创 2013-01-22 10:30:11 · 1335 阅读 · 0 评论 -
Android--通过Http协议向web服务器发送XML数据和调用webService
笔记摘要: 这里介绍了向web服务器提交XML实体数据,通过将请求参数和请求方法按照某种协议封装在XML文件中,提交到WebServices(网络上提供的API,天气查询,股票行情 等服务),webServices通过调用相应的方法,返回某种协议的结果,最终通过客户端对该种协议的数据进行解析,最终将结果显示给用户。这里通过号码归属地查询来演 示该提交方式的用处。原创 2013-01-21 16:17:32 · 4824 阅读 · 0 评论 -
Android学习--网络通信之网络图片查看器
笔记摘要: 这里主要讲IO流和Web技术相结合,由客户端提交获取图片服务请求,服务端返回图片。 同样的我们可以获取到各种格式的数据(文本、网页、XML、Json),只要在读取工具类中对数据进行相应的转换,返回指定格式的数据即可 需要注意的是:测试时访问路径不能使用localhost,必须使用IP地址,因为Android也是操作系统,所以它会认为是访问了自己系统的本原创 2013-01-21 08:48:44 · 1358 阅读 · 1 评论 -
Android--通过Http协议实现多线程下载
笔记摘要: 主要介绍多线程的下载的实现原理,每段线程从不同位置进行文件的下载,其中对于文件的分段下载,主要使用到了随机读写文件类:RandomAccessFile, 这里通过示例进行演示一、多线程下载原理1、得到网络文件的长度,然后在本地生成一个与它长度相等的本地文件,2、需要计算每天线程的数据下载量,公式如下: 假设使用N条线程原创 2013-01-21 19:57:28 · 1252 阅读 · 0 评论 -
获取设备唯一ID的几种方式
博客摘要:很简单,就是获取手机的A原创 2014-05-05 23:19:01 · 52755 阅读 · 0 评论 -
SQLite数据库框架ORMLite与GreenDao的简单比较
摘要:最近准备使用数据库做个缓存,但不知道哪个好用些原创 2014-04-24 21:56:26 · 19978 阅读 · 6 评论 -
GreenDao官方文档翻译下
第五篇 查询查询会返回符合某些特定标准的实体。你可以使用原始的SQL定制查询语句,或者更好的方式:使用GreenDao的QueryBuilder API。该查询也支持lazy-loading的结果集。这样在操作大量结果集的时候可以节省内存和性能。QueryBuilderQueryBuilder可以帮助你构建自定义的查询语句,而不使用SQL的情况。并不是每个人都喜欢书翻译 2014-04-25 21:27:29 · 13797 阅读 · 4 评论 -
GreenDao官方文档翻译上
笔记摘要:上一篇博客简单的介绍了翻译 2014-04-24 22:27:53 · 14420 阅读 · 9 评论 -
SharedPreferences最佳实践
博客摘要:该文章是我在Android W翻译 2014-04-26 09:07:09 · 3670 阅读 · 0 评论 -
Android--建立能与访问者进行相互通信的本地服务
笔记摘要: 本地服务:访问者跟服务在同一个进程内。远程服务:访问者跟服务不在同一个进程内,因为通过startService()和stopService()启动关闭服务, 适用于服务和访问者没有交互的情况。如果服务和访问者之间需要方法调用或者传递参数,则需要使用bindService()和unbindService()方法启动关闭服务。 这里就通过一个简单的查询示例来演示相互通原创 2013-01-31 11:37:35 · 1090 阅读 · 0 评论 -
Activity生命周期详解及最佳实践
根据你的activity的复杂度,你也许不需要实现所有的生命周期方法。然而,你需要知道每一个方法的功能并确保你的app能够像用户期望的那样执行。如何实现一个符合用户期待的app。你需要注意下面几点:当使用你的app的时候,不会因为有来电通话或者切换到其他app而导致程序crash。当用户没有激活某个组件的时候不要消耗宝贵的系统资源。当离开你的app并且一段时间后返回,不要丢转载 2014-09-25 10:41:46 · 2225 阅读 · 0 评论 -
Android--使用AIDL和远程服务实现线程通信
笔记摘要: 在Android中,每个应用都有自己的进程,当需要在不同的进程之间传递对象时,由于java不支持跨进程内存共享,因此要传递对象,需要把对象解析成操作系统能 够理解的数据格式,以达到跨界对象访问的目的。在javaEE中,采用RMI通过序列化传递对象,在Android中,则采用AIDL(Android Interface Definition Language:原创 2013-01-31 15:06:05 · 2040 阅读 · 0 评论 -
AppCompat V21:将 Materia Design 兼容到5.0之前的设备
AppCompat V21:将 Materia Design 应用于5.0之前的设备android 5.0今天发布。在很多很棒的更新中,包括了新的UI组件和创建 Material Design 主题的能力。为了使你能够将新的设计中更新到旧的系统中,我们同时更新了包含 AppCompat 的support libraries。在这篇文章中,我将总体说明一下appCompat的新特性并翻译 2014-10-18 17:06:25 · 24705 阅读 · 5 评论 -
开源项目Philm的MVP架构分析
请移步个人新Blog站点:http://www.lightskystreet.com/2015/02/10/philm_mvp/原创 2015-02-10 17:39:25 · 2445 阅读 · 0 评论 -
进入Material Design时代
进入Material Design时代关于Material Design是5.0系统的重头戏,是一种具有可视化,交互性,动效以及多屏幕适应的全面设计。并逐渐成为一种设计标准,本篇文章通过对2篇官方文章的翻译,全面介绍Material Design的所有特点以及其实现和兼容,并整理了十多个在GitHub上相关的开源库,帮助你更好更快的实现Material Design。如果你正在学习或者即将学习并应用Material Design设计风格,那么这篇文章将对会帮助你更全面的理解它。原创 2014-11-01 18:27:09 · 24876 阅读 · 13 评论 -
Google Developing for Android系列文章翻译
前一段时间,Google官方发布了Developing for Android系列文章,共7篇,涉及内存,性能,网络,存储,framework,都是Android中比较重要的部分,这些点对于如何开发一个好的App非常重要,周末学习了,就全部翻译了出来,非常棒的文章,绝对值得细细品味,在另一个博客上,有翻译不准确的地方欢迎大家指出:http://www.lightskystreet.com/arch原创 2015-06-09 14:16:40 · 1310 阅读 · 0 评论 -
通过反射的方式挂断电话
思路:要想挂断电话,必然会用到电话服务:getSystemService(TELEPHONY_SERVICE);但查看源码时,发现 @Override public Object getSystemService(String name) { return mBase.getSystemService(name); }继续查找:原创 2013-05-08 21:28:12 · 2876 阅读 · 0 评论 -
Handler的使用二
Handler与线程:Handler对象用于线程的异步,在实际开发中为了同时处理其他程序,并保证主线程的安全性,需要使用多线程。即Handler对象可以实现多线程的操作,在线程中可以定义自己需要执行的操作。 不过一般的handler对象。在使用post将线程压入线程队列的时候,并没有调用start方法,所以被压入的线程和该Activity是在同一个线程中。从 示例一中可以得到原创 2012-11-08 16:41:54 · 823 阅读 · 0 评论 -
marsAndroid学习——常见控件ExpandableListActivityh和SimpleExpandableListAdapter的简单使用
笔记摘要:本次主要介绍ExpandableListActivity和SimpleExpandableListAdapter的简单使用方法,其中的难点在于为SimpleExpandableListAdapter提供数据,而较于Spinner只能提供一个下拉菜单供用户选择,ExpandableListActivity可以提供更多的目录和选项,当然实现起来就比较复杂Expandabl原创 2012-11-16 20:00:32 · 1340 阅读 · 0 评论 -
marsAndroid学习——常见控件DatePicker、DatePickerDialog和TimePicker、TimePickerDialog
笔记摘要:对于 DatePicker和DatePickerDialog与TimePicker和TimePickerDialog是类似的,包括创建方法,一个用于指定年月日并提供操作方法,后者用于操作时分秒,也提供了操作这些时间的方法。不过在这里要说明的是:在 Android3.0之后,出现了DialogFragment,使用它同样可以帮我们创建DatePickerDialog和Time原创 2012-11-16 17:06:26 · 4259 阅读 · 1 评论 -
Activity常见控件三——progressBar
笔记摘要:本示例简单介绍了条形和圆形progressBar的创建与进度设置。style="?android:attr/progressBarStyleHorizontal" 条形进度style="?android:attr/progressBarStyle" 圆形进度(为默认)通过setVisibility( View.VISIBLE)和setVisib原创 2012-11-07 00:15:47 · 1377 阅读 · 0 评论 -
Mars-Android学习——网络文件下载和写入SD卡
笔记摘要:本例主要使用了IO流的相关技术,装饰类,转换流,文件的读取和写入以及流对象的关闭File对象的相关操作:获取File对象,根据路径创建文件夹,判断文件是否存在,创建文件,将各个方法封装到工具类中,提高复用性Url技术:字符串到Url的转换:url = new URL(urlStr);获取Http连接服务:HttpURLConnection con =原创 2012-11-11 12:39:00 · 2096 阅读 · 0 评论 -
marsAndroid学习——SeekBar和RatingBar控件
笔记摘要:本次主要对于SeekBar和RatingBar的基本创建做了说明。都非常简单,在布局文件中创建一个Bar,然后在Activity代码中实现并绑定相应的监听器,实现必要的方法即可,是比较简单,以后和其他控件一起使用就可实现更好的效果,既然学习了,就写下来,虽然简单,但烂笔头总低得过好记性,以后使用时直接拿来就行。SeekBar:SeekBar效果图代原创 2012-11-16 21:16:28 · 994 阅读 · 0 评论 -
marsAndroid学习——spinner的基本使用
Spinner:译为诱饵,我想可以理解下面还有大鱼,呵呵,在Android中主要是提供下拉菜单的功能,这里简单介绍了snipper的两种创建方法:静态方式:在strings.xml文件中创建一个name,通过createFromResource方法创建一个ArrayAdapter对象,这里布局文件可以使用自己的,也可以使用系统的动态方式:使用List集合在程原创 2012-11-16 00:03:21 · 1430 阅读 · 0 评论 -
marsAndroid学习——广播机制
广播机制所谓广播,最大的特点就是广播向外发送消息,但是发送方不关心接收方是否接收到数据,也不关心接收方如何处理数据。生活中只要有广播接收器,就能接收广播信息,但是只有特定的人群可以对广播的消息进行处理,因为对于其他人来说广播的消息可能是无用的,比如在广播的时候播放了一段交通路况,某某路段交通堵塞,那么司机师傅就会对自己的行驶路线进行相应的调整,而对于其他人来说,这条消息是无用的,也不必做出原创 2012-11-11 20:51:56 · 1403 阅读 · 0 评论 -
Activity_01常见控件的使用方法以及不同Activity之间的通信
笔记摘要: 通过一个简单的乘法计算器来熟悉各种控件的使用方法,以及实现如何在同一个程序中的不同的Activity之间的交流,比如如何从一个MainActivity跳转 到另外一个OtherActivity,以及如何将数据从OtherActivity返回到MainActivity,同时也对如何为Menu按钮添加条目进行了简单的介绍 思路:1、在MainAc原创 2012-11-02 09:12:46 · 1632 阅读 · 0 评论 -
Activity常用控件二——RadioGroup、RadioButton、CheckBox的使用
笔记摘要:这里主要简单的介绍了RadioGroup中的RadioButton和CheckBox的创建方法和监听器的设置需要注意的是:RadioGroup的监听器和Button控件的监听器有所不同,分别为:RadioGroup.OnCheckedChangeListenerCompoundButton.OnCheckedChangeListener示例原创 2012-11-06 20:18:16 · 1263 阅读 · 0 评论 -
marsAndroid--Activity的生命周期
一、Activity生命周期Activity在运行时会受到一些突然事件的影响,例如:你正使用一个Activity濡染来了一个电话,这时的应用就要具备处理这些突发事件的能力,要处理这些突发事件,需要用到Activity的生命周期。一个完整的生命周期中包括7个生命周期函数,放在task中,以栈形式存放,只显示最顶层的Activity,视情况需要,是否要执行finish方法,以便原创 2012-11-05 22:19:46 · 868 阅读 · 0 评论 -
Android学习 —— 数据的存储与访问方式三: SQLite数据库
SQLite在Android平台上,集成了一个嵌入式关系型数据库—SQLite,SQLite3支持 NULL、INTEGER、REAL(浮点数字)、TEXT(字符串文本)和BLOB(二进制对象)数据类型,虽然它支持的类型只有五种,但实际上sqlite3也接受varchar(n)、char(n)、decimal(p,s) 等数据类型,只不过在运算或保存时会转成对应的五种数据类型。 SQL原创 2012-11-11 09:47:01 · 1689 阅读 · 0 评论 -
Android学习 —— 数据的存储与访问方式四: ContentProvider
笔记摘要: 对于私有数据的访问,除了文件读取方式(当然在创建的时候需要设置足够的权限),还可以通过ContentProvider来进行访问,ContentProvider 在android中的作用是对外共享数据,也就是说你可以通过ContentProvider把应用中的数据共享给其他应用访问,其他应用可以通过ContentProvider 对你应用中的数据进行添删改查。Cont原创 2013-04-19 23:49:30 · 1567 阅读 · 0 评论 -
Android学习 —— 多种适配器方式实现ListView
笔记摘要: 本文主要对ListView列表显示的实现进行了分析,对于列表显示,分为两个部分,第一个部分是整体布局,也就是ListView所在的布局,但ListView中的一个个横条Item布局也需要我们自己去构建,所以需要创建一个Item的布局文件,然后通过配置器来引入,当然也引入一些数据,最后为ListView设置适配器即可。适配器有多种,这里就介绍了几种不同的适配器:Ar原创 2013-04-19 22:47:44 · 1931 阅读 · 0 评论 -
Android学习 —— 数据的存储与访问方式一: 文件存取
笔记摘要:在Android中主要提供了四种数据存储与访问的方式,文件、SharedPreference(偏好参数保存)、SOLite数据库、内容提供者(Content provider)和网络, 本篇文章先介绍使用文件的方式进行数据的存储和访问,其中重点介绍了它的四种操作模式。使用文件进行存储方式一:通过openFileOutput()直接把数据输出到原创 2013-04-17 20:02:25 · 1577 阅读 · 0 评论 -
Android学习 —— 数据的存储与访问方式二: SharedPreferences(偏好参数保存)
SharedPreferences 主要用于软件配置参数的保存,它是一个轻量级的存储类,特别适用于保存软件配置参数,使用该类保存数据,数据存放的文件类型为XML,文件存放路径: /data/data//shared_prefs目录下。 因为SharedPreferences背后是使用xml文件保存数据,getSharedPreferences(name,原创 2013-04-17 20:43:58 · 1158 阅读 · 0 评论 -
Android Studio 简单介绍和使用问题小结
google在2013的I/O开发者大会上引入的该开发工具。现在是0.5.8版本。现在github的很多项目都使用了Android Studio开发,所以如果你还用Eclipse,就需要把整个项目拆分,然后在工程中include依赖包,是非常费事的,有时候弄了半天还不一定能成功导入。而且Android开发者工具的未来的趋势一定也是转向Android Studio。所以种种原因,不得不学原创 2014-05-17 22:04:53 · 51255 阅读 · 7 评论