- 博客(15)
- 收藏
- 关注
原创 各种各样的IPC方式
一、Bundle 优点:简单易用 缺点:只能传输Bundle支持的数据类型 适用场景:四大组件间的进程间通信二、文件共享 优点:简单易用 缺点:不适合高并发场景、并且无法做到进程间的即时通信 适用场景:无并发访问情形,交换简单的数据实时性不高的场景三、AIDL 优点:功能强大,支持一对多并发通信,支持实时通信 缺点:适用稍复杂,需要处理好线程同步 适用场景:一对多通信且有RPC需求
2017-08-06 13:43:10 373
原创 Android中的内存泄漏情况分析
内存泄漏(memory leak)是指由于疏忽或错误造成程序未能释放已经不再使用的内存。那么在Android中,当有一个对象持有Activity的引用,如果该对象不能被系统回收,那么当这个Activity不再使用时,这个Activity也不会被系统回收,那这么以来便出现了内存泄漏的情况。在应用中内出现一两次的内存泄漏或许不会出现什么影响,但是在应用长时间使用以后,若是存在大量的Activity无法被
2017-07-14 11:35:36 205
原创 git-osc-android客户端之源码分析3
一、侧滑菜单栏 工作流程图: 当菜单栏显示时,点击左上角图标,隐藏菜单栏;菜单栏隐藏时,显示菜单栏。 当点击菜单栏的某一条目后,跳转到对应的界面。 1、点击登录后,进入登录界面; 2、发现,进入发现界面; 3、我的,进入我的界面; 4、语言,进入我的语言界面; 5、摇一摇,进入摇一摇界面; 6、设置,进入设置界面; 7、反馈,进入反馈界面; 界面之间的跳转则是封装在了UIH
2017-05-28 15:36:03 395
原创 git-osc-android客户端之源码分析2
一、登录界面的布局 在AndroidManifest文件中LoginActivity的配置如下: 需要配置: 1、android:screenOrientation=”portrait”这是为了让登录界面始终保持为竖屏方向。 2、android:windowSoftInputMode=”adjustUnspecified”这是设置的输入法的一个属性,特点:”adjustUnspecifi
2017-05-25 22:20:47 530
原创 git-osc-android客户端之源码分析1
一、项目的整体介绍 1、1 项目的目录结构 项目中一共包括有12个包: 1、net.oschina.gitapp:存放了项目中的一些框架类,AppConfig、AppContext、AppManager、WelcomePage等基础类。 2、net.oschina.gitapp.adapter:存放了项目中ListView的数据适配器。 3、net.oschina.gitapp.api:存
2017-05-22 21:45:59 510
原创 Android中Binder的理解
1、什么是Binder? 直观来说,Binder是Android中的一个类,它实现了IBinder接口。从IPC角度来说,Binder是Android中的 一种跨进程通信方式,Binder还可以理解为一种虚拟的物理设备,它的设备驱动是/dev/binder,该通信方式在Linux中没有;从Android Framework角度来说,Binder是ServiceManager连接各种Mana
2017-05-13 17:30:27 364
原创 开源中国android客户端源码分析-学习笔记2
一、MainActivity详解 其中涉及的知识点 1、注解ButterKnife的使用 用 @bind 给字段注释并且ButterKnife会根据给定的View ID去查找并自动转换为与你的Layout中相匹配的View。class ExampleActivity extends Activity { @Bind(R.id.title) TextView t
2017-05-03 21:24:18 386
原创 开源中国android客户端源码分析-学习笔记1
一、启动时的spalsh界面 在应用启动的时候,出现一个启动的欢迎界面,在这个界面中完成的任务: 1、Log日志的上传 2、跳转到主界面 3、动画——在动画结束时执行上述两项操作二、涉及到的java类文件 1、AppStart.java——整个应用的入口 2、LogUploadService.java——在AppStart开启,完成上一次记录在本地的日志的上传 3、MainActivi
2017-05-02 14:46:50 1148
原创 Android中Handler的理解
Handler简介 Handler属于Android消息机制中的重要组成部分,Handler的使用过程很简单,通过它可以轻松地将一个任务切换到Handler所在的线程中去执行。很多人认为Handler的作用是更新UI,这的确没错,但是更新UI仅仅是Handler的一个特殊的使用场景。从本质上来说,Handler并不是专门用于更新UI的,它只是常被开发者用来更新UI。 Handle
2017-05-01 21:53:09 364
原创 Synchronized关键字用法
java线程同步中的重要概念——Synchronized 它有如下4种用法 1、修饰一个代码块,被修饰的代码块被称为同步代码块,作用的对象是调用这个代码块的对象 2、修饰一个方法,被修饰的方法被称为同步方法,作用的对象是调用这个方法的对象 3、修饰一个静态方法,作用的对象是这个类的所有对象 4、修饰一个类,作用的对象是这个类的所有对象1、修饰代码块 一个线程访问一个对象中的synchr
2017-04-14 18:28:07 224
原创 二叉查找树和二叉堆的分析小结
一、二叉排序树 定义:树中的每个节点,它的左子树中的所有项的值小于X中的项,而它的右子树中所有项的值大于X中的项。 二叉查找树中最困难的操作是remove(删除),分为以下几种情况: 1)如果节点是一片树叶,那么它可以被立即删除; 2)如果节点有一个儿子,则该节点可以在其父节点调整自己的链以绕过该节点后被删除; 3)复杂的情况是处理具有两个儿子的节点。一般的删除策略是用其右子树的最小的数据
2017-04-13 22:23:19 922
原创 排序小结(java实现 )
java中的排序总结 1、冒泡排序(有m个数,就要进行m-1趟比较;在第j趟要进行m-j次两两比较)static void bubbleSort(int[] array){ int temp; int flag=0;//设置标志,如果第一次循环比较时没有发生交换,则说明数组是升序排序,不用排序,提前结束循环 for(int i=0;i<array.
2017-04-13 17:04:37 270
转载 java变量的初始化顺序小结
本文转自:http://www.jb51.net/article/37885.htm,并作了增减。 1、无继承 对于静态变量、静态初始化块、变量、初始化块、构造器,它们的初始化顺序是: (静态变量、静态初始化块)>(变量、初始化块)>构造器 public class InitialOrderTest { public static String staticfield=”静态变量
2016-11-01 10:23:24 214
原创 java 中堆、栈、(字符串)常量池
一、存放的内容 堆:存放程序中所有New出来的对象; 栈:存放基本类型的变量、对象的引用、局部变量(形式参数); 常量池:存放基本类型常量和字符串常量; 二、大小和生命期 对于栈和常量池中的对象可以共享。栈中的数据大小和生命周期可以确定,当变量超过了生命周期,那么这个数据就会自动消失。 对于堆中的对象不可以共享,由垃圾回收器负责回收、释放不再持有引
2016-10-18 20:00:43 598
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人