- 博客(31)
- 资源 (6)
- 收藏
- 关注
原创 [自学经历]我是怎么边工作边自学转行Android的
两年前。2013.6,我终于自学完成,找到了一份不错的Android开发工作,一步步做到今天成为android主程。 当时,我在EOE发了帖子,讲述如何自学Android,获得了几千留言,现在看来里面的有些方法有待商榷,故重新发帖,再次讲述我是如何自学的,并对几个关键性问题:例如是否要培训给出我的看法。so,现在正在或在犹豫自学Android的同学们,可以借鉴一下。 这篇帖
2016-06-25 16:59:09 2825 2
原创 一次内存泄漏导致的OOM实例分析和解决
一: 问题描述 在B公司项目中的一个界面,ViewPager展示20多张照片,进行一些操作比如:左右滑动照片,点击编辑问题,退出问题详情再进去等,会导致问题详情的照片ViewPager部分照片显示不出,甚至直接OOM崩溃。 二:解决方法 通过Log查看,发现确实是OOM,导致APP崩溃。(只不过ImageLoader框架作了简单Cash 以至于有时不会崩溃,
2016-05-31 13:27:15 1938
原创 远程绑定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 728
原创 ViewPager滑动监听的参数解释
viewpager.setOnPageChangeListener (new OnPageChangeListener() { @Override public void onPageSelected(int select) { //
2015-04-23 23:19:17 3301
原创 Activity启动模式的深入分析
网上关于Activity启动模式的文章非常多,但是看起来都千篇一律,看完之后我们都能理解这4种启动模式,不过官方api对singleTask这个启动模式解释有些争议,导致我其实并没有真正理解这几种模式,特别是对实际开发到底怎么用还是一知半解,于是花了一天时间好好研究这4种启动模式。 首当其冲应该知道Task的概念,它是我们一系列操作连贯跳转activity形成的一个activity
2015-03-19 00:19:12 1592 3
原创 首选项框架PreferenceFragment部分源码分析
因为要改一些settings里面的bug以及之前在里面有做过勿扰模式,准备对勿扰模式做一个总结,那先分析一下settings的源码,里面的核心应该就是android3.0 上面的首选项框架PreferenceFragment。因为在3.0之前都是把这些东西放在PreferenceActivity的,但是3.0之后google建议把setting放在PreferenceFragment,但是Pr
2015-03-18 21:03:38 1466
原创 通话记录项目总结
把之前做的通话记录部分做一个总结,通话记录在整个联系人应用中占一个fragment,主要是显示了近段时间的所有通话和未接来电,这部分不是我写的不做重点介绍,主要说一下点击进入已保存联系人和未保存联系人的详细通话界面,还有未接来电的个数图标显示。 通话记录显示界面是CalllogGroupFragment,它继承了ListFragment更好的显示,实现了2个接口:implements
2015-03-17 20:54:32 937 5
原创 百度地图开发初步
上周学了了一下手机GPS定位以及百度地图的使用,现在对此做一个总结: 个人感觉地图应用可以划分为三个部分:首先是定位,可以是精度高但是速度稍慢的gps定位,也可以是速度快精度低移动网络的定位,这个完全由用户自己选择,定位方法会返回一个包含经度纬度速度方向等很多参数的一个 ”位置“ 。然后就是地图,虽然android提供了google地图但是无法使用,在国内就直接用百度地图吧,通
2015-03-12 14:10:03 969
原创 LoaderManager和Loader初步使用
Android 3.0中提供了一个新概念Loaders,这两天看了之前Contacts的源码,其中自己写了通话记录部分,发现源码里面有很多LoaderManager的使用,现在做一个总结,记录一下LoaderManager的基本用法: 这个其实是分为两部分:LoaderManager和自定义Loader,比如像加载联系人,短信这些系统提供ContentProvider的数据时,
2015-03-11 18:31:27 1014
原创 项目实战:OTA系统升级
对之前做的OTA系统升级项目做一个总结,包括4个部分:OTA系统的介绍,OTA包的制作,代码结构以及待改善的问题。 1. OTA介绍: OTA 全称 over the air , OTA 升级是 Android 系统提供的标准软件升级方式。 它功能强大,提供了完全升级、增量升级模式,可以通过 SD 卡升级,也可以通过网络升级。在系统升级中,主要要做
2015-03-10 17:43:23 2517 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 750
原创 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 787
转载 android:layout_weight 深刻理解
最近写Demo,突然发现了Layout_weight这个属性,发现网上有很多关于这个属性的有意思的讨论,可是找了好多资料都没有找到一个能够说的清楚的,于是自己结合网上资料研究了一下,终于迎刃而解,写出来和大家分享。首先看一下Layout_weight属性的作用:它是用来分配属于空间的一个属性,你可以设置他的权重。很多人不知道剩余空间是个什么概念,下面我先来说说剩余空间。看下
2014-03-13 09:37:52 856
原创 android UI(01) ViewPager
1. 用来实现进入APK的界面向导, 通常是几张图片(也可以是自定义的view,用LayoutInflater导入) 最重要的是继承PageAdapter:public class ViewPagerAdapter extends PagerAdapter { //界面列表 private ArrayList views;
2014-03-06 09:47:22 956
原创 Intent 详解
在我们曾经介绍的一片关于Android系统架构基本模式解析的文章中,大家可以充分的对这一功能强大的手机系统有一个初步的掌握。在这里大家可以通过Android本地应用程序的一些介绍更加深入的对这一开源系统进行解读。Android本地应用程序也使用Intent来启动Activity和子Activity。下面的列表简单的列出了Intent类中以静态字符串常量保存的本地动作。你可以
2013-11-22 15:26:47 875
原创 android事件监听的两种方式
Android事件处理的两种模型UI编程通常都会伴随事件处理,Android也不例外,它提供了两种方式的事件处理:基于回调的事件处理和基于监听器的事件处理。对于基于监听器的事件处理而言,主要就是为Android界面组件绑定特定的事件监听器;对于基于回调的事件处理而言,主要做法是重写Android组件特定的回调函数,Android大部分界面组件都提供了事件响应的回调函数,我们主要重写
2013-11-07 11:05:26 1277
原创 CursorLoader异步加载
在主界面了可以用一个ListView显示一些手机中的数据 例如短信 联系人 图库等等,这个数据怎么得到呢 ?就可以用 CursorLoader来加载这些数据public class MainActivity extends Activity implements LoaderCallbacks { TextView mTextView; @Override
2013-11-06 15:49:05 1067 1
原创 AsyncTask异步任务
在Android中实现异步任务机制有两种方式,Handler和AsyncTask。Handler模式需要为每一个任务创建一个新的线程,任务完成后通过Handler实例向UI线程发送消息,完成界面的更新,这种方式对于整个过程的控制比较精细,但也是有缺点的,例如代码相对臃肿,在多个任务同时执行时,不易对线程进行精确的控制。关于Handler的相关知识,前面也有所介绍,不清楚的朋友们可以参照一下
2013-10-15 14:30:18 933 1
原创 Service
Service的启动有两种方式:context.startService()和context.bindService()。1.context.startService() 使用context.startService() 启动Service是会会经历:context.startService() ->onCreate()- >onStartCommand(
2013-10-12 10:31:43 1076
原创 Android开发之广播机制
概述在Android中,有一些操作完成以后,会发送广播,比如说发出一条短信,或打出一个电话,如果某个程序接收了这个广播,就会做相应的处理。这个广播跟我们传统意义中的电台广播有些相似之处。之所以叫做广播,就是因为它只负责“说”而不管你“听不听”,也就是不管你接收方如何处理。另外,广播可以被不只一个应用程序所接收,当然也可能不被任何应用程序所接收。什么是Broadcast Receiver
2013-10-10 14:45:03 799
原创 Android中的数据存储: SD操作
一. JAVA中的各种IO流:1.流的选择 选择条件的区别:以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。以字符为单位读取文件,常用于读文本,数字等类型的文件.至于是否选择用Buffer来对文件输入输出流进行封装,就要看文件的大小,若是大文件的读写,则选择Buffer这个桶来提供文件读写效率。 在网络传输中我们往往要传输很多变量,我们可
2013-09-25 14:28:24 699
原创 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 2274
原创 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 918
原创 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 770
原创 Android学习笔记12:SharedPreferences
一 . 数据存储之 SharedPreferences类似我们常用的ini文件 ,存储应用程序中的一些简单设置, 在用户退出程序 下次再打开时候, 可以得到跟上一次一样的设置。使用方法 :1. 先得到 SharedPreferences 对象,然后调用它的 get XXX 方法得到我们预先设置的值,其中第一个参数是键值,第二个是在SharedPreferences 无效的情况
2013-07-26 16:22:13 775
原创 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 1157 1
原创 Android学习笔记7:四大组件之ContentProvider
ContentProvider概览: 我们自己应用的数据库只能给自己使用,无法提供给其他应用直接操作,于是便有了ContentProvider,但在实际开发中很少有应用需要编写自己的ContentProvider 把自己的数据库暴露给别人,一半都是用ContentProvider来访问紫铜应用的数据库,比如系统的短信和联系人。我们学习怎么写ContentProvider是要去了解它实
2013-07-05 22:51:26 822
原创 Android学习笔记6:SQLite使用方法
1. 先写一个类 class DatabaseHelper extends SQLiteOpenHelper//DatabaseHelper作为一个访问SQLite的助手类,提供两个方面的功能,//第一,getReadableDatabase(),getWritableDatabase()可以获得SQLiteDatabse对象,通过该对象可以对数据库进行操作//第二,提供了onC
2013-06-18 20:25:21 977
原创 Android学习笔记3:Activity布局
在这里介绍三种布局方式: android:id —— 为控件指定相应的ID android:text —— 指定控件当中显示的文字,需要注意的是,这里尽量使用strings.xml文件当中的字符串 android:grivity —— 指定控件的基本位置,比如说居中,居右等位置 android:textSize —— 指定控件当中字体的
2013-06-14 14:47:17 1013
原创 Android学习笔记2:Android四大组件
Android四大基本组件分别是Activity,Service服务,Content Provider内容提供者,BroadcastReceiver广播接收器。Activity :应用程序中,一个Activity通常就是一个单独的屏幕,它上面可以显示一些控件也可以监听并处理用户的事件做出响应。Activity之间通过Intent进行通信。在Intent 的描述结构中,有两个最重要的部
2013-06-14 14:19:28 688
原创 Android学习笔记1:XML基础
XML命名规则: ①.XML名以下划线或字母开始; ②.XML名可包含字母、数字、句点、下划线和冒号;③.XML名不能包含空格; ④.XML名不能以数字开始,但可包含数字;⑤.XML名区分大小写。一个完整地XML应该具备以下规则:1.文档的开始必须是XML声明。 2.含有数据的元素必须有起始标记和结束标记3.不含数据并且仅使用一个标记的元素必
2013-06-14 13:45:25 882
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人