- 博客(39)
- 资源 (2)
- 收藏
- 关注
原创 面向对象的6大原则与3大特性
6大原则:单一职责原则——SRP开闭原则——OCP里式替换原则——LSP依赖倒置原则——DIP接口隔离原则——ISP迪米特原则——LOD单一职责原则单一职责原则的定义是就一个类而言,应该仅有一个引起他变化的原因。也就是说一个类应该只负责一件事情。如果一个类负责了方法M1,方法M2两个不同的事情,当M1方法发生变化的时候,我们需要修改这个类的M1方法,但是这个时候就有可能导致M2方法不能工作。这个不...
2018-04-23 10:38:50 369
原创 百度面试android
1.算法:计算两个超大的数字[远超出long能表示的范围]相加,并打印结果?2.谈一下面向对象的六大原则 以及三大特性3.谈一下设计模式 具体引出 a.谈一下观察者模式如何实现的 b.为什么使用rxjava 有什么优势4.如何对android的性能优化 具体引出 a. 如何处理页面卡顿 在实际项目中有遇到哪些场景 如何解决的 b.一张大图 加载在50*50的imageV...
2018-04-18 15:27:11 1126
原创 java8 lambda表达式的几个示例
例1、用lambda表达式实现Runnable我开始使用Java 8时,首先做的就是使用lambda表达式替换匿名类,而实现Runnable接口是匿名类的最好示例。看一下Java 8之前的runnable实现方法,需要4行代码,而使用lambda表达式只需要一行代码。我们在这里做了什么呢?那就是用() -> {}代码块替代了整个匿名类。123
2018-01-04 15:16:23 3268
原创 rxjava第一篇 rxjava基本用法
1.rxjava基本实现:配置:androidStudio中配置gradledependencies { ... compile 'io.reactivex:rxjava:1.2.0' compile'io.reactivex:rxjava:1.2.1'}rxjava使用分为3步:(1)创建观察者observer(2)创建被观察者o
2017-12-25 14:48:05 424
原创 equals与==的区别
以String类为例子说明eqauls与==的区别:在开始这个例子之前,同学们需要知道JVM处理String的一些特性。Java的虚拟机在内存中开辟出一块单独的区域,用来存储字符串对象,这块内存区域被称为字符串缓冲池。当使用 String a = "abc"这样的语句进行定义一个引用的时候,首先会在字符串缓冲池中查找是否已经相同的对象,如果存在,那么就直接将这个对象的引用返回给a,
2017-05-26 20:13:28 301
原创 解决listview onitemclick 点击无效问题
究其根本的问题是子view抢了点击事件 属于事件分发范畴。不讲原理了,只贴出解决的代码解决办法:1. 子View根布局 设置 android:descendantFocusability2.子View中 有Button 或者ImageButton之类的设置 android:focusable="false"3.ListView布局 设置 android:spli
2017-03-13 20:03:46 1788
原创 解决从相册获取图片路径cursor = getContentResolver().query(uri, proj, null, null, null)报空的问题
uri不空但cursor = getContentResolver().query(uri, proj, null, null, null)报空 主要是因为android4.4版本前后的uri形式不同可以使用一下方法来获取图片路径:public static String getImageAbsolutePath(Activity context, Uri imageUri) {
2017-03-03 16:29:41 5593
原创 android守护进程详解
Android 进程拉活包括两个层面:A. 提供进程优先级,降低进程被杀死的概率B. 在进程被杀死后,进行拉活本文下面就从这两个方面做一下总结。1. 进程的优先级Android 系统将尽量长时间地保持应用进程,但为了新建进程或运行更重要的进程,最终需要清除旧进程来回收内存。 为了确定保留或终止哪些进程,系统会根据进程中正在运行的组件以及这些组件的状态,将每个
2017-02-22 15:21:42 1226
原创 JAVA8的 十大新特性
本教程将Java8的新特新逐一列出,并将使用简单的代码示例来指导你如何使用默认接口方法,lambda表达式,方法引用以及多重Annotation,之后你将会学到最新的API上的改进,比如流,函数式接口,Map以及全新的日期API“Java is still not dead—and people are starting to figure that out.”本教
2017-02-08 19:56:06 281
原创 【Android基础笔记23】Service及AIDL
Service及AIDL一、Service:(一)、Service 简介:1、何谓“Service”?“Service” 意思即“服务”的意思, 像 Windows 上面的服务一样,服务是在后台上运行,承担着静悄悄的不为人所注意的工作。Service运行在后台,它是不可见的、无界面的程序。Service可以在很多场合的应用中使用,比如播放多媒
2017-01-09 16:30:02 398
原创 【Android基础笔记22】BroadcastReceiver广播接收者 、ExpandableListView
一、广播简介:(一)、广播传播机制:广播接收器,也被称为全局事件,或系统事件。在Android中,有一些操作完成以后,会发送广播,比如说发出一条短信,或打出一个电话,如果某个程序接收了这个广播,就会做相应的处理。这个广播跟我们传统意义中的电台广播有些相似之处。之所以叫做广播,就是因为它只负责“说”而不管你“听不听”,也就是不管你接收方如何处理。另外,广播可以被不只一个应
2017-01-09 16:27:01 307
原创 【Android基础笔记21】ViewPager
一、ViewPager简介:(一)、引入: 主要可以实现左右滑动展示数据 适配需要通过PagerAdapterViewPager展示ImageView代码如下:public class MainActivity extends Activity { private ViewPager viewPager; private int[
2017-01-09 16:24:31 283
原创 【Android基础笔记20】ActionBar动作栏及Dialog
ActionBar动作栏及Dialog一、ActionBar:(动作栏)(一)、简介:(扩展TitleBar) Action bar(动作栏)是一个导航控件,用以代替传统屏幕顶端的标题栏。ActionBar显示在屏幕顶部的控件,它包括了在左边显示的应用的logo图标和右边操作菜单的可见项。类似于windows桌面程序的工具栏。效果如下图:
2017-01-06 14:10:27 713
原创 【Android基础笔记19】Handler、Looper消息传递机制
Handler、Looper消息传递机制一、Handler消息传递机制初步认识:(一)、引入: 子线程没有办法对UI界面上的内容进行操作,如果操作,将抛出异常:CalledFromWrongThreadException为了实现子线程中操作UI界面,Android中引入了Handler消息传递机制。 什么
2017-01-06 14:09:15 465
原创 【Android基础笔记18】Handler消息传递机制——源码赏析
Handler消息传递机制——源码赏析Android的消息处理有四个核心类:Handler、Looper、Message、MessageQueue,都在android.os包中。Android在UI线程和其他线程之间通过收发消息来通信,被收发的消息就是Message,而一般使用一个MessageQueue,即消息队列来管理多个消息,又使用Looper来从Messa
2017-01-06 14:07:06 297
原创 【Android基础笔记17】Loader异步装载
一、Loader简介:(一)、Loader的概念:装载器从android3.0开始引进。它使得在activity或fragment中异步加载数据变得简单。装载器具有如下特性:它们对每个Activity和Fragment都有效。他们提供了异步加载数据的能力。它拥有一个数据改变通知机制,当数据源做出改变时会及时通知。 当Cursor
2017-01-06 14:05:26 335
原创 【Android基础笔记16】自定义ContentProvider
一、自定义ContentProvider:(一)、操作步骤:1、编写一个类,必须继承自ContentProvider类;2、实现ContentProvider类中所有的抽象方法; 需要实现:onCreate() 、getType() 、query() 、insert() 、update()、delete() 等方法。【备注:】C
2017-01-06 13:59:31 396
原创 【Android基础笔记15】ContentProvider实现数据共享
一、ContentProvider简介:(一)、引入: 数据库在Android当中是私有的,不能将数据库设为WORLD_READABLE,每个数据库都只能创建它的包访问。这意味着只有创建这个数据库的应用程序才可访问它。也就是说不能跨越进程和包的边界,直接访问别的应用程序的数据库。那么如何在应用程序间交换数据呢? 如果需要在进程间传递数据,可以使用ContentProvide
2017-01-06 13:57:02 660
原创 【Android基础笔记14】Android数据存储——External和Internal Storage
一、Internal Storage存储操作:(一)、Internal Storage存储特点: 1.内部存储的路径 data/data/应用程序包名/files/文件名 2.内部存储的特点: 2.1 内部存储总是有效的 2.2 默认情况内部存储只能当前应用访问 2.3 当应用程序卸载时 内部存储的文件也会随着删除 内部存储在应用程
2017-01-06 13:54:45 578
原创 【Android基础笔记13】SQLiteDatabase
SQLiteDatabase一、SQLite:数据库的路径(如果是在默认路径/data/data//databases/(一)、简介:Android通过 SQLite 数据库引擎来实现结构化数据的存储。在一个数据库应用程序中,任何类都可以通过名字对已经创建的数据库进行访问,但是在应用程序之外就不可以。SQLite 数据库是一种用C语言编写的嵌入
2017-01-06 13:38:51 287
原创 【Android基础笔记12】Android数据存储——SharedPreferences
一、数据存储选项:Data Storage ——Storage Options【重点】1、Shared PreferencesStore private primitive data in key-value pairs.保存简单的键值对数据。2、Internal StorageStore private data on the device memory.在手机内存中保存不对外共
2017-01-06 13:37:39 379
原创 【Android基础笔记11】Fragment
一、Fragment的概念和用法:(一)、概念: Fragment是在Android 3.0 (API level 11)开始引入新的API技术。 为了提高代码重用性和改善用户体验,我们将Activity中的UI组件进行分组和模块化管理。这些分组后的UI组件就是Fragment。 一个Activity页面中可以包含多个F
2017-01-06 13:36:20 502
原创 【Android基础笔记10】Dialog Menu Toast以及Notification
Dialog Menu Toast以及Notification一、Dialog对话框:(一)、分类:AlertDialog 警告对话框(提示对话框)ProgressDialog 进度对话框DatePickerDialog 日期选择对话框TimerPickerDialog 时间选择对话框自定义对话框(登录对话框、关于对话框)列表对话框普通列表
2017-01-06 13:34:32 401
原创 【Android基础笔记09】ListView图文混排+GridView
一、ListView图文混排:(一)、ListView每个item加载图片和文字关键代码如下:Adapter代码如下:图片的Asynctask 实现步骤是: (二)、GridView 网格视图点击选择头像进行回传的关键代码MainActivityResultA
2017-01-06 13:33:24 384
原创 【Android基础笔记08】ListView分页
一、ListView分页:(一)、目的: Android 应用开发中,采用ListView组件来展示数据是很常用的功能,当一个应用要展现很多的数据时,一般情况下都不会把所有的数据一次就展示出来,而是通过 分页的形式来展示数据,这样会有更好的用户体验。因此,很多应用都是采用分批次加载的形式来获取用户所需的数据。例如:微博客户端可能会在用户滑 动至列表底端时自动加载下一页数
2017-01-06 11:26:59 395
原创 【Android基础笔记07】异步任务AsyncTask
一、AsyncTask:(一)、相关知识回顾:1、开发Android应用时必须遵守单线程模型的原则: Android UI操作并不是线程安全的,并且这些操作必须在UI线程中执行。2、单线程模型中始终要记住两条法则: 1). 不要阻塞UI线程 ;2). 确保只在UI线程中访问Android UI控件。
2017-01-06 11:21:48 260
原创 【Android基础笔记06】Activity管理及Intent七大属性
一、任务与回退栈:(一)、任务Task:1、概念:一个任务(task)就是在执行某项工作时与用户进行交互的Activity的集合。这些Activity按照被打开的顺序依次被安排在一个堆栈中(回退栈)。2、主屏页面:设备的主屏是大多数任务的启动位置,当用户触摸一个应用程序启动器图标(或者app快捷图标),应用程序的任务就会在前台显示。如果相关应用程序的任务不存在,
2017-01-06 11:20:01 377
原创 【Android基础笔记05】Activity生命周期以及Activity之间的传值
一、Activity初步认识:【创建、配置、启动Activity】(一)、创建Activity:创建Activity:继承于Activity或其子类,重写onCreate()方法。(二)、Activity的注册配置:作为四大组件之一的Activity,必须要在AndroidManifest清单文件中进行注册。如果没有配置,而又在程序中启动了该Acti
2017-01-06 11:18:27 329
原创 【Android基础笔记04】Spinner 和 AutoCompleteTextView 基本适配器控件的使用
一、AutoCompleteTextView(自动提示框)(一)、 类结构介绍: java.lang.Object ↳ android.view.View ↳ android.widget.TextView ↳ android.widget.EditText ↳ android.widget.Auto
2017-01-06 11:17:35 443
原创 【Android基础笔记03】 Android RelativeLayout相对布局和基本UI控件
一、RelativeLayout:【掌握】(一)、概念:指按着控件之间的相对位置来进行布局。(二)、RelativeLayout特有属性:1、android:gravity 设置布局容器内子控件的对齐方式 2、android:ignoreGravity 设置布局管理器内哪个控件不受gravity属性的影响(三
2017-01-06 11:16:13 447
原创 【Android基础笔记02】 API Guide学习和常用布局及基本UI控件
Android API Guide学习和LinearLayout布局及基本UI控件一、Android UI框架:【了解】 Android中所有的UI(用户界面)元素都是使用View和ViewGroup对象建立的,View是一个可以将一些信息绘制在屏幕上并与用户产生交互的对象,而ViewGroup是一个包含多个的View和ViewGroup的容器,用
2017-01-06 11:09:26 637
原创 【Android基础笔记01】Android开发环境搭建和HelloWorld
最近手头项目3.0版本要上线了, 没有那么多工作压力了, 抽空看了看之前在云笔记上做的笔记 都是一些基础知识 给大家分享出来吧一、什么是Android?【了解 】Android(中文俗称安卓)是一个以Linux内核为基础的半开源的移动设备操作系统,可以用在手机、平板电脑和其他移动嵌入式设备上。它由Google所领导的Open Handset Alliance(OHA,开放手机联盟)所维护和持续
2017-01-06 11:06:02 976
原创 SlidingMenu实现沉浸式状态栏的终极办法
前段时间做项目 用到了因为SlidingMenu发现SlidingMenu无法实现沉浸式状态栏 当时项目时间紧张 没来的及研究源码 故只改了状态栏的颜色,今天有空在完善项目的时候 感觉只修改状态栏颜色是万万达不到想要的效果 故研究了下SlidingMenu的源码。看了源码才发现 要实现SlidingMenu沉浸式状态栏 只需要把SlidingMenu.java源码里的一个状态修改下!
2017-01-04 17:59:11 3131 3
原创 最完美解决win10,win8 环境下 安装svn等一系列msi 2503 2502失败的方法
相信有很多人在win10 win8环境下 安装不上svn 的确是管理员权限的问题 网上所说的方法基本上都很鸡肋 ,并不能完全解决问题.那么您不妨试试这个方法 :1.ctrl+alt+del 打开任务管理器--->详细信息--->找到explorer.exe结束掉它 如图2. 任务管理器左上角 文件--->运行新任务--->写入explorer.exe
2016-11-18 18:27:44 8380 17
原创 Android Lint 静态代码检查
一、简介Android SDK自带了工具Lint,通过它可以对Android工程源码进行静态代码分析,发现潜在的缺陷和优化改进项。Android Lint可以在以下几个层面分析代码:correctness正确性,security安全性,performance性能,usability可用性,accessibility可访问性和internationalization国际化。
2016-08-24 19:32:12 430
原创 android 解决fragment中有百度高德等地图,切换出现闪一下黑屏的问题
切换fragment时不要用replace()方法,这样会重新绘制界面,同时这样即消耗性能和也消耗用户的数据流量。使用hide(),show()方法,完美解决黑屏问题。贴点关键代码:实例fragment: private BespeakChargeFragment mapFragment = new BespeakChargeFragment(); private MyO
2015-10-24 18:06:16 3853 1
转载 Socket 通信原理(Android客户端和服务器以TCP&&UDP方式互通)
ZERO、前言有关通信原理内容是在网上或百科整理得到,代码部分为本人所写,如果不当,还望指教。一、Socket通信简介 Android与服务器的通信方式主要有两种,一是Http通信,一是Socket通信。两者的最大差异在于,http连接使用的是“请求—响应方式”,即在请求时建立连接通道,当客户端向服务器发送请求后,服务器端才能向客户端返回数据。而So
2015-08-05 14:56:06 447
转载 教你如何使用FastJson
一.首先概述一下Fastjson中的经常调用的方法: 避免使用org.apche.json的包。 1 public static final Object parse(String text); // 把JSON文本parse为JSONObject或者JSONArray 2 public static final JSONObject parseObject(Stri
2015-07-27 15:48:14 439
android从相册选择图片获取图片路径工具类
2017-03-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人