自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

月出惊弓鸟的博客

开发者的进阶笔记

  • 博客(31)
  • 资源 (6)
  • 收藏
  • 关注

原创 [自学经历]我是怎么边工作边自学转行Android的

两年前。2013.6,我终于自学完成,找到了一份不错的Android开发工作,一步步做到今天成为android主程。   当时,我在EOE发了帖子,讲述如何自学Android,获得了几千留言,现在看来里面的有些方法有待商榷,故重新发帖,再次讲述我是如何自学的,并对几个关键性问题:例如是否要培训给出我的看法。so,现在正在或在犹豫自学Android的同学们,可以借鉴一下。   这篇帖

2016-06-25 16:59:09 2787 2

原创 一次内存泄漏导致的OOM实例分析和解决

一: 问题描述   在B公司项目中的一个界面,ViewPager展示20多张照片,进行一些操作比如:左右滑动照片,点击编辑问题,退出问题详情再进去等,会导致问题详情的照片ViewPager部分照片显示不出,甚至直接OOM崩溃。 二:解决方法   通过Log查看,发现确实是OOM,导致APP崩溃。(只不过ImageLoader框架作了简单Cash 以至于有时不会崩溃,

2016-05-31 13:27:15 1928

原创 远程绑定Service使用Messenger通讯

1. 先在远程service里面new一个自己的Messenger :messenger = new Messenger(handler);2. 在这个handler里面处理接收到的消息3. 在onBind中把这个Messenger的binder返给客户端: return messenger.getBinder();4. 客户端拿到这个Messenger就可

2015-04-28 16:22:27 711

原创 ViewPager滑动监听的参数解释

viewpager.setOnPageChangeListener (new OnPageChangeListener() { @Override public void onPageSelected(int select) { //

2015-04-23 23:19:17 3248

原创 Activity启动模式的深入分析

网上关于Activity启动模式的文章非常多,但是看起来都千篇一律,看完之后我们都能理解这4种启动模式,不过官方api对singleTask这个启动模式解释有些争议,导致我其实并没有真正理解这几种模式,特别是对实际开发到底怎么用还是一知半解,于是花了一天时间好好研究这4种启动模式。       首当其冲应该知道Task的概念,它是我们一系列操作连贯跳转activity形成的一个activity

2015-03-19 00:19:12 1553 3

原创 首选项框架PreferenceFragment部分源码分析

因为要改一些settings里面的bug以及之前在里面有做过勿扰模式,准备对勿扰模式做一个总结,那先分析一下settings的源码,里面的核心应该就是android3.0 上面的首选项框架PreferenceFragment。因为在3.0之前都是把这些东西放在PreferenceActivity的,但是3.0之后google建议把setting放在PreferenceFragment,但是Pr

2015-03-18 21:03:38 1444

原创 通话记录项目总结

把之前做的通话记录部分做一个总结,通话记录在整个联系人应用中占一个fragment,主要是显示了近段时间的所有通话和未接来电,这部分不是我写的不做重点介绍,主要说一下点击进入已保存联系人和未保存联系人的详细通话界面,还有未接来电的个数图标显示。      通话记录显示界面是CalllogGroupFragment,它继承了ListFragment更好的显示,实现了2个接口:implements

2015-03-17 20:54:32 924 5

原创 百度地图开发初步

上周学了了一下手机GPS定位以及百度地图的使用,现在对此做一个总结:       个人感觉地图应用可以划分为三个部分:首先是定位,可以是精度高但是速度稍慢的gps定位,也可以是速度快精度低移动网络的定位,这个完全由用户自己选择,定位方法会返回一个包含经度纬度速度方向等很多参数的一个 ”位置“ 。然后就是地图,虽然android提供了google地图但是无法使用,在国内就直接用百度地图吧,通

2015-03-12 14:10:03 947

原创 LoaderManager和Loader初步使用

Android 3.0中提供了一个新概念Loaders,这两天看了之前Contacts的源码,其中自己写了通话记录部分,发现源码里面有很多LoaderManager的使用,现在做一个总结,记录一下LoaderManager的基本用法:     这个其实是分为两部分:LoaderManager和自定义Loader,比如像加载联系人,短信这些系统提供ContentProvider的数据时,

2015-03-11 18:31:27 973

原创 项目实战:OTA系统升级

对之前做的OTA系统升级项目做一个总结,包括4个部分:OTA系统的介绍,OTA包的制作,代码结构以及待改善的问题。       1. OTA介绍:      OTA 全称 over the air ,   OTA 升级是 Android 系统提供的标准软件升级方式。 它功能强大,提供了完全升级、增量升级模式,可以通过 SD 卡升级,也可以通过网络升级。在系统升级中,主要要做

2015-03-10 17:43:23 2476 1

原创 android获得图片总结

//1,已将图片保存到drawable目录下//通过图片id获得DrawableResource res=gerResource();Drawable drawable=res.getDrawable(id);//id为R.drawable.图片名称//通过图片id获得BitmapResource res=gerResource();

2014-04-10 17:16:49 734

原创 android UI(2)自定义控件简单使用

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_par

2014-03-21 16:58:08 777

转载 android:layout_weight 深刻理解

最近写Demo,突然发现了Layout_weight这个属性,发现网上有很多关于这个属性的有意思的讨论,可是找了好多资料都没有找到一个能够说的清楚的,于是自己结合网上资料研究了一下,终于迎刃而解,写出来和大家分享。首先看一下Layout_weight属性的作用:它是用来分配属于空间的一个属性,你可以设置他的权重。很多人不知道剩余空间是个什么概念,下面我先来说说剩余空间。看下

2014-03-13 09:37:52 843

原创 android UI(01) ViewPager

1.     用来实现进入APK的界面向导, 通常是几张图片(也可以是自定义的view,用LayoutInflater导入)  最重要的是继承PageAdapter:public class ViewPagerAdapter extends PagerAdapter {            //界面列表      private ArrayList views;

2014-03-06 09:47:22 919

原创 Intent 详解

在我们曾经介绍的一片关于Android系统架构基本模式解析的文章中,大家可以充分的对这一功能强大的手机系统有一个初步的掌握。在这里大家可以通过Android本地应用程序的一些介绍更加深入的对这一开源系统进行解读。Android本地应用程序也使用Intent来启动Activity和子Activity。下面的列表简单的列出了Intent类中以静态字符串常量保存的本地动作。你可以

2013-11-22 15:26:47 868

原创 android事件监听的两种方式

Android事件处理的两种模型UI编程通常都会伴随事件处理,Android也不例外,它提供了两种方式的事件处理:基于回调的事件处理和基于监听器的事件处理。对于基于监听器的事件处理而言,主要就是为Android界面组件绑定特定的事件监听器;对于基于回调的事件处理而言,主要做法是重写Android组件特定的回调函数,Android大部分界面组件都提供了事件响应的回调函数,我们主要重写

2013-11-07 11:05:26 1249

原创 CursorLoader异步加载

在主界面了可以用一个ListView显示一些手机中的数据  例如短信 联系人 图库等等,这个数据怎么得到呢 ?就可以用  CursorLoader来加载这些数据public class MainActivity extends Activity implements LoaderCallbacks { TextView mTextView; @Override

2013-11-06 15:49:05 1057 1

原创 AsyncTask异步任务

在Android中实现异步任务机制有两种方式,Handler和AsyncTask。Handler模式需要为每一个任务创建一个新的线程,任务完成后通过Handler实例向UI线程发送消息,完成界面的更新,这种方式对于整个过程的控制比较精细,但也是有缺点的,例如代码相对臃肿,在多个任务同时执行时,不易对线程进行精确的控制。关于Handler的相关知识,前面也有所介绍,不清楚的朋友们可以参照一下

2013-10-15 14:30:18 913 1

原创 Service

Service的启动有两种方式:context.startService()和context.bindService()。1.context.startService() 使用context.startService() 启动Service是会会经历:context.startService()  ->onCreate()- >onStartCommand(

2013-10-12 10:31:43 1060

原创 Android开发之广播机制

概述在Android中,有一些操作完成以后,会发送广播,比如说发出一条短信,或打出一个电话,如果某个程序接收了这个广播,就会做相应的处理。这个广播跟我们传统意义中的电台广播有些相似之处。之所以叫做广播,就是因为它只负责“说”而不管你“听不听”,也就是不管你接收方如何处理。另外,广播可以被不只一个应用程序所接收,当然也可能不被任何应用程序所接收。什么是Broadcast Receiver

2013-10-10 14:45:03 790

原创 Android中的数据存储: SD操作

一. JAVA中的各种IO流:1.流的选择   选择条件的区别:以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。以字符为单位读取文件,常用于读文本,数字等类型的文件.至于是否选择用Buffer来对文件输入输出流进行封装,就要看文件的大小,若是大文件的读写,则选择Buffer这个桶来提供文件读写效率。       在网络传输中我们往往要传输很多变量,我们可

2013-09-25 14:28:24 686

原创 android学习笔记19:FastJson解析json

1. FastJson是阿里巴巴的开源JAR包   是速度最快的JSON解析包   先去下载号这个JAR包 添加到我们的项目中然后看看FastJson的基本方法:public static final Object parse(String text); // 把JSON文本parse为JSONObject或者JSONArray public static final

2013-09-22 16:12:07 2260

原创 android学习笔记18:Dom和Dom4j解析XML

处理dom解析的核心类   public class DomService{    public DomService()    {        // TODO Auto-generated constructor stub    }    public List getBooks(InputStream inputStream) throws Excepti

2013-09-22 14:32:18 906

原创 android学习笔记16: SAX解析XML

thinking in java 85.5 Spring in Action 39.0 xml文件被Sax解析器载入,由于Sax解析是按照xml文件的顺序来解析,当读入时,会调用startDocument()方法,当读入的时候,由于它是个ElementNode,所以会调用startElement(String uri, String localName,

2013-09-17 16:30:09 754

原创 Android学习笔记12:SharedPreferences

一 .     数据存储之  SharedPreferences类似我们常用的ini文件 ,存储应用程序中的一些简单设置, 在用户退出程序 下次再打开时候, 可以得到跟上一次一样的设置。使用方法 :1.   先得到 SharedPreferences 对象,然后调用它的 get XXX 方法得到我们预先设置的值,其中第一个参数是键值,第二个是在SharedPreferences 无效的情况

2013-07-26 16:22:13 758

原创 Android学习笔记11:Fragment总结

在ActionBar中添加标签(Tabs),每个标签对应的是一个Fragment,点击不同的Tab时,就会切换到对应的Fragment。1. 先看怎么写Fragment : public class EditFragment extends Fragment{ @Override public void onCreate(Bundle savedInstanceS

2013-07-24 13:08:04 1140 1

原创 Android学习笔记7:四大组件之ContentProvider

ContentProvider概览:      我们自己应用的数据库只能给自己使用,无法提供给其他应用直接操作,于是便有了ContentProvider,但在实际开发中很少有应用需要编写自己的ContentProvider 把自己的数据库暴露给别人,一半都是用ContentProvider来访问紫铜应用的数据库,比如系统的短信和联系人。我们学习怎么写ContentProvider是要去了解它实

2013-07-05 22:51:26 809

原创 Android学习笔记6:SQLite使用方法

1.  先写一个类   class DatabaseHelper extends SQLiteOpenHelper//DatabaseHelper作为一个访问SQLite的助手类,提供两个方面的功能,//第一,getReadableDatabase(),getWritableDatabase()可以获得SQLiteDatabse对象,通过该对象可以对数据库进行操作//第二,提供了onC

2013-06-18 20:25:21 964

原创 Android学习笔记3:Activity布局

在这里介绍三种布局方式:        android:id  —— 为控件指定相应的ID    android:text —— 指定控件当中显示的文字,需要注意的是,这里尽量使用strings.xml文件当中的字符串    android:grivity —— 指定控件的基本位置,比如说居中,居右等位置    android:textSize —— 指定控件当中字体的

2013-06-14 14:47:17 949

原创 Android学习笔记2:Android四大组件

Android四大基本组件分别是Activity,Service服务,Content Provider内容提供者,BroadcastReceiver广播接收器。Activity :应用程序中,一个Activity通常就是一个单独的屏幕,它上面可以显示一些控件也可以监听并处理用户的事件做出响应。Activity之间通过Intent进行通信。在Intent 的描述结构中,有两个最重要的部

2013-06-14 14:19:28 673

原创 Android学习笔记1:XML基础

XML命名规则: ①.XML名以下划线或字母开始; ②.XML名可包含字母、数字、句点、下划线和冒号;③.XML名不能包含空格; ④.XML名不能以数字开始,但可包含数字;⑤.XML名区分大小写。一个完整地XML应该具备以下规则:1.文档的开始必须是XML声明。   2.含有数据的元素必须有起始标记和结束标记3.不含数据并且仅使用一个标记的元素必

2013-06-14 13:45:25 862

android平台PDF查看编辑

android平台PDF查看编辑

2016-06-28

mars第一季源码

MARS老师安卓第一季视频的源码,里面有中文代码注释,跟视频完全同步

2013-06-14

ESD_静电放电知识培训

ESD_静电放电知识培训 很容易看懂的知识

2013-06-09

《Android应用开发揭秘》源码.rar

从图书官网下载的源代码,完整有效,省去了下载注册的麻烦

2013-06-09

21天学通JAVA(高清版

JAVA入门快速的最好选择 适合那些没有语言基础的同学

2013-06-09

最完整Android中文API合集(2013.6更新)

这是目前网上最完整的中文安卓API 欢迎下载

2013-06-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除