- 博客(25)
- 资源 (4)
- 收藏
- 关注
原创 android启动activity的详细过程
首先认识几个重要的概念:ActivityManagerService: 四大组件管理的核心类,同时管理和调度用户进程 ActivityRecord: 在AMS中用来保存一个activity的信息TaskRecord: 在AMS用来保存一个任务的信息ActivityStack: 管理taskRecord。三星FW包含HOME_STACK_TYPE、NORMAL_APP_STACK_T
2017-03-17 21:38:09 876
原创 android应用程序启动详情之进程相关
当某个应用组件启动且该应用没有运行其他任何组件时,Android 系统会使用单个执行线程为应用启动新的 Linux 进程。默认情况下,同一应用的所有组件在相同的进程和线程(称为“主”线程)中运行。 如果某个应用组件启动且该应用已存在进程(因为存在该应用的其他组件),则该组件会在此进程内启动并使用相同的执行线程。也可以在AndroidManifest.xml中配置And
2017-03-14 20:22:11 673
原创 android应用程序启动详情之Dalvik虚拟机
本文主要讨论Android启动一个应用时一些后台相关的流程。Dalvik虚拟机 -》 进程启动 -》 创建UI线程总体概念: 一个应用,一个虚拟机实例,一个进程,一个UI线程1. Dalvik虚拟机基本知识介绍基本概念Dalvik虚拟机是Android程序的虚拟机,其指令集基于寄存器架构,执行其特有的文件格式——dex字节码,主要负责完成对象生命周期管理、堆栈管理、线程管理、
2017-03-13 15:17:02 2517
原创 复习大纲列表
从以下几个点来开展自己的复习计划:Android基础知识学习;Java基础知识学习;巩固自己开发的APP。1.Android基础知识学习: 1)FW 层的相关服务知识:(3.20) - ActivityManagerService相关知识: - WindowsService 相关知识 - SystemServer 相关知
2017-03-10 14:23:33 344
原创 在fragment中实现仿tab效果
最近由于项目需要在fragment中实现一个tab支持click监听和page滑动。现在主流的都是使用viewPager+fragmentadapter来实现,但是他们都是在activity中实现。如果直接把这一套直接搬进到fragment中fragment会显示不出来,界面一团黑启动不起来。最后在网上找到该博主的解决方案,链接: http://blog.csdn.net/my
2016-04-10 12:00:06 358
原创 新信息存入数据库的更新过程
一般对于数据库更新过程都是要利用到观察者模式,所以在讲解新信息的更新过程前先了解观察者模式的注册和通知更新的流程。 注册监听时各个类之间的调用关系:ContentObserver 就是就是用来接收数据变化时的观察者,能进行异步派发派发接收到变化的通知。public abstract class ContentObserver { private Transport mTr
2016-02-24 16:15:18 1097
转载 AsyncTask和Handler的优缺点比较
AsyncTask实现的原理和适用的优缺点AsyncTask,是android提供的轻量级的异步类,可以直接继承AsyncTask,在类中实现异步操作,并提供接口反馈当前异步执行的程度(可以通过接口实现UI进度更新),最后反馈执行的结果给UI主线程.使用的优点:简单,快捷过程可控 使用的缺点:在使用多个异步操作和并需要进行Ui变更时,就变得复杂起来.H
2016-02-23 10:16:27 295
转载 android线程间的通信机制
之前文章介绍了android进程间的通信方式大体有四种:Intent携带参数传递,broadcast,contentprovider和binder。具体可以参考之前问题。而在android中如果同一进程中,开启了不同的线程,那么这些线程之前和线程跟主线程之间是怎么通信的,这边问题就是来讲这个问题。网上看到两篇详细介绍android线程的文章,讲的非常详细:【Android开发】线程间通讯机
2015-09-30 11:27:00 1087
原创 android binder 机制
1、 Binder通信模型通信流程图:各个步骤流程:1) service 运行,阻塞于 ioctl,等待 client 发起请求service 进程运行起来,然后通过调用 IPCThreadState 的 joinThreadLoop 在本线程中开始等待客户端请求的到来。两个前提条件:第一个,system service 必须向 service manager 注册
2015-09-30 09:46:14 1050
转载 android中跨进程通讯的4种方式
转自: http://www.2cto.com/kf/201202/119100.html由于android中不同的进程使用的内存空间不同,所以如果想要在进程中传递数据直接传递数据地址是不行的,proA中的数据地址在proB中是无效的。所以在android中目前知道的有四种数据通信方式:方式一 使用Intent方式进行数据传递通过Intent来启动访问其他应用程序的Activity
2015-09-29 20:25:35 2007
转载 java中的多线程
参考文章: http://lavasoft.blog.51cto.com/62575/27069/文章已经总结的很详细,我以下的文章只是对上面文章的简单摘抄,版权仍然为上文所有。1、 java线程的概念 参考链接: http://lavasoft.blog.51cto.com/62575/27069/线程创建的两种方法:继承thread类和实现runnable方法。如果
2015-06-25 20:11:07 576
原创 结合彩信的发送过程介绍HTTP
1、http在整个TCP/IP的位置:2、 http的主要特点 1) http协议是基于TCP/IP的无连接,在传输层使用的是TCP协议,所以在每次数据请求时都需要进行三次握手连接,再传输数据。数据传输完毕了后需要进行四次握手断开连接。这样才完成一次完整的数据请求过程。 2) 由于采用的是C/S模型,所以在请求数据时只需要传送请求方法和路径
2015-06-25 19:50:08 1907
原创 内存泄露检测工具介绍——leakcanary
在android开发过程中经常碰到OOM的情况,下面介绍一个检查OOM非常实用的工具——leakcanary原文地址: https://corner.squareup.com/2015/05/leak-canary.html中文翻译: http://www.liaohuqiu.net/cn/posts/leak-canary-read-me/具体关于leakcanary的介绍可
2015-06-25 18:54:38 4503
原创 POJ1125 求有向图中两点的最短路径问题
POJ 1125典型的求解有向图中两个的最短路径问题:如果求图中任意两点的最短路径,则使用flyod算法。如果求图中给定两点的距离,则用dijkstra算法.Floyd算法:int map[N][N]; void Floyd() { for(int t=1; t<=n; t++) for(int i=1; i<=n; i++)
2015-06-17 21:22:02 4185
原创 POJ3278 使用BFS解决问题
Poj 3278:简化题意:给定两个整数n和k可以通过三种操作: n+1;n-1 或n*2 ,使得n==k输出最少的操作次数 解题思路:分两种情况:当n >= k 直接后退寻找到K当n 代码稍后附上:
2015-06-17 21:08:02 371
原创 POJ1328 Radar Installation
题目大意: 在一个海上有好多岛屿,想要在海滩上建立雷达给所有岛屿进行通信,雷达通信有范围限制,要求出在给出固定岛屿坐标后至少需要建立多少雷达。算法思路: 1) 获取岛屿坐标及雷达通信范围后,计算出该岛屿能够与海滩通信的区域范围, 2)计算出每个岛屿的在海滩的通信范围后,对每个节点的通信范围的左左边进行排序。 3)求出公共区域的数
2015-06-11 10:30:33 296
转载 Android listview的性能优化
参考网址:http://www.devba.com/index.php/archives/5966.html讲解几种listview性能优化的方法:优化一:也是最普通的优化,就在MyAdapter类中的getView方法中,我们注意到,上面的写法每次需要一个View对象时,都是去重新inflate一个View出来返回去,没有实现View对象的复用,而实际上对于ListV
2015-06-06 17:44:49 328
转载 listView的工作原理
listview的基本元素:参考网址:http://blog.csdn.net/ocean181/article/details/7170735ListView是将数据以列表的形式展现出来,由三个元素组成:view、adapter和data,关系图如下。 1).View,列表的显示形式由一个xml所指定的。一般是在每个item需要显示的时候即在getView函数中通过Inflate
2015-06-05 10:07:54 551
原创 好记性不如写博客
博客被封了一段时间了,刚刚解禁出来。决定把之前保存在本地word上的笔记重新整理到博客上来,文章内容基本是在借鉴其他大牛的博客稍微整理,加上一点自己的理解,欢迎大家前来指点!坚持写博客,把写博客变成一种习惯。
2015-06-05 09:39:43 281
原创 关于Android隐式启动Activity
转自:http://hi.baidu.com/leo10086/item/a35817158405605af0090e52隐式启动Activity的intent到底发给哪个activity,需要进行三个匹配,一个是action,一个是category,一个是data,可以是全部或部分匹配同样适用于Service和BroadcastReceiver,下面是以Activity为例
2013-09-14 11:49:35 368
原创 Android中的Handler的用法
转自:http://txlong-onz.iteye.com/blog/934957Android UI操作并不是线程安全的并且这些操作必须在UI线程中执行。Android利用Handler来实现UI线程的更新的。Handler是Android中的消息发送器,其在哪个Activity中创建就属于且紧紧属于该Activity。还可以说其在哪个线程中new的,就是那个线程的Handler。
2013-08-25 18:18:03 501
原创 Android开发:Handler Runnable和Thread之间的区别和联系
在java中可有两种方式实现多线程,一种是继承Thread类,一种是实现Runnable接口;Thread类是在java.lang包中定义的。一个类只要继承了Thread类同时覆写了本类中的run()方法就可以实现多线程操作了,但是一个类只能继承一个父类,这是此方法的局限。下面看例子:package org.thread.demo; class MyThread exte
2013-08-25 17:36:22 514
原创 关于findViewById函数
我们调用的findViewById()函数其实有两种(目前我只看到两种,不确定还有没有其他的),一种是Activity类中findViewById()函数;另外一种是View类中定义的findViewById()函数。一般我们在oncreate()方法中使用的(**view)findViewById(R.id.**)既是调用的Activity中的findViewById()函数而在其他情况
2013-08-25 16:27:50 1054
原创 Android Activity和Intent机制
Android 中,Activity是所有程序的根本,所有程序的流程都运行在Activity之中,Activity具有自己的生命周期 , 由系统控制生命周期,程序无法改变,但可以用onSaveInstanceState 保存其状态)。对于Activity,关键是其生命周期 的把握(如下图),其次就是状态的保存和恢 复(onSaveInstanceState onRestoreInstanc
2013-08-25 12:30:58 393
原创 Android Intent机制实例详解(Activity篇)
Android 中提供了 Intent 机制来协助应用间的交互与通讯,或者采用更准确的说法 是, Intent 不仅可用于应用程序之间,也可用于应用程序内部的 Activity/Service 之间的交互。 Intent 这个英语单词的本意是“目的、意向”等,对于较少从事 于大型平台开发工作的程序员来说, 这可能 是一个不太容易理解的抽象概念,因为它与我们平常使用的简单函数/ 方法调用,或
2013-08-25 11:07:26 540
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人