- 博客(66)
- 收藏
- 关注
原创 开源库总结和第三方SDK
一、开源库 1.网络 OKhttp 添加依赖 compile ‘com.squareup.okhttp3:okhttp:3.4.1’ Volley 添加依赖 compile ‘eu.the4thfloor.volley:com.android.volley:2015.05.28’ Nohttp 添加依赖 compile ‘com.yolanda.nohttp:
2016-08-26 13:47:18
908
原创 Service详解
1.简介 Service运行在后台不需要依赖UI,但是依然在主线程中。2.使用注意 startService, Service类执行方法: onCreate(),onStartCommand(). 再次调用startService, 只会执行onStartCommand(). 因为onCreate()只会在Service创建的时候执行一次。每次调用 startService
2016-08-24 14:20:18
436
原创 Activity详解
一、简介 Activity是一个应用程序组件,提供一个屏幕,用户可以用来交互为了完成某项任务。 在一个android应用中,一个Activity通常就是一个单独的屏幕,,但也可小于屏幕并浮动在其他窗口之上。 它上面可以显示一些控件也可以监听并处理用户的事件做出响应。Activity之间通过Intent进行通信。 Android 是通过一种 Activity 栈的方式
2016-08-22 16:43:00
681
原创 网络协议
1.网络协议是什么? 为计算机网络中进行数据交换而建立的规则、标准或约定的集合。2.网络协议的要素语法:用来规定信息格式; 数据及控制信息的格式、编码及信号电平等。语义:用来说明通信双方应当怎么做;用于协调与差错处理的控制信息。定时:(时序)定义了何时进行通信,先讲什么,后讲什么,讲话的速度等。比如是采用同步传输还是异步传输。 3.网络协议详解 网络协议是网络上所有设备(网络服务
2016-08-20 22:00:58
594
原创 Android基础知识整理
1.Activity 四大组件之一,一般,一个用户界面对应一个activity. setContentView(); //要显示的布局 activity是context的子类,同时实现了window.callback和keyevent.callback,可以处理窗体用户交互的事件。 如果界面有共同的特点,可以自己定义一个BaseActivity.2.描述 A
2016-08-18 18:25:27
334
原创 RecyclerView
简介 RecyclerView是Android 5.0 materials design中的组件之一,相应的还有CardView、Palette等。RecyclerView提供了一个耦合度更低的方式来复用ViewHolder,并且可以轻松的实现ListView、GridView以及瀑布流的效果。RecyclerView的用法 1、首先我们要gradle的依赖库中添加 compile’com
2016-08-17 20:31:37
253
原创 Material design简介
一、核心思想Material design的核心思想,就是把物理世界的体验带进屏幕。去掉现实中的杂质和随机性,保留其最原始纯净的形态、空间关系、变化与过渡,配合虚拟世界的灵活特性,还原最贴近真实的体验,达到简洁与直观的效果。二、Material design实体感就是(通过设计方式来表达)隐喻通过构建系统化的动效和空间合理化利用,并将两个理念合二为一,构成了实体隐喻。与众不同的触感是实体的基础,
2016-08-17 15:00:17
1140
原创 MD5
使用MD5示例:public class MD5Encoder { public static String encode(String string) throws Exception{ byte[] hash= MessageDigest.getInstance("MD5").digest(string.getBytes("UTF-8")); String
2016-08-15 21:13:27
297
原创 GeekBand 第十四周笔记
本周课程讲解设计模式,应该说对我们还是有点高深。设计模式(Design Patterns)设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。项目
2016-08-15 17:58:39
305
原创 GeekBand第十三周笔记
一、复用 bitmap1、 常见的图像格式: jpg, png, webp。JPG:有损压缩,PNG: 无损压缩WEBP:克服 前两种格式的缺点。无损压缩时,极大地压缩体积。推荐 但是Android 4.2之后才支持 这种格式。 2、解码(decode) 常见的存储格式,是一种编码格式。既然有编码,就会有解码。 这些常见的格式在 Android中要显示图片,必
2016-08-08 14:40:38
408
原创 CVS SVN Git
一、简介发展顺序 cvs–>svn–>git。cvs比较古老,提交失败时解决冲突比较麻烦。svn不错,基本上想要用的功能都有,在配置成http服务时比较简单,稳定。git主要比svn多的是一个本地库,可以在本地提交。CVS(Concurrent Versions System)代表协作版本系统或者并发版本系统,是一种版本控制系统,方便软件的开发和使用者协同工作。Subversion,简称SVN,
2016-08-07 18:09:45
690
2
原创 Geekband第十三周作业
1.减少背景的使用取消 activity_main.xml的TextView的背景。因为在布局中设置了背景色,所以取消MainActivity中window自带的背景色,减少过度绘制 getWindow().setBackgroundDrawable(null);因为自定义控件OverdrawView占满了整个屏幕,所以取消OverdrawActivity的背景 getWindow().s
2016-08-07 12:34:09
398
原创 Ant, Gradle,Maven,jCenter
1、简介Apache Ant,是一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发。Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化建构工具。2、 使用语言Ant 是纯Java语言编写的。Gradle是 基于Groovy语言。3、 详细Ant运行时需要一个XML文件(构建文件)。 Ant通过调用targe
2016-08-04 22:28:31
563
原创 Android框架初探
最近,下了一些完整项目的源码,看一些大神的项目解析,对Android框架有一点点认识。先暂时总结下,期望进一步提高。框架,框架模式,设计模式是不同的。框架模式有哪些? MVC、MTV、MVP、CBD、ORM等等;框架有哪些? C++语言的QT、MFC、gtk,Java语言的SSH 、SSI,php语言的 smarty(MVC模式),python语言的django(MTV模式)等等设计模式有
2016-07-31 17:49:18
427
原创 GeekBand 第十二周笔记
在 AS 上运行 MemoryBugs-master 项目,寻找潜在的内存问题。1、 Leaks 显示出错误 sTextView被声明为静态变量,持有mContext上下文的引用,造成内存泄漏。静态对象,在整个程序运行期间,是不会被垃圾回收的。静态变量持有 另一非静态对象 的引用,导致这个非静态对象被销毁之后,也不能够被回收,导致内存泄漏 。解决办法: sTextView取消 static 。
2016-07-30 11:17:13
288
原创 GeekBand第十一周笔记
本周的主要内容介绍Gradle,NDK,管理依赖和Git等一、GradleGradle是一个基于Apache Ant和Apache Maven概念的项目自动化建构工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XML的各种繁琐配置。 面向Java应用为主。当前其支持的语言限于Java、Groovy和Scala,计划未来将支持更多的语言。 Coding只是
2016-07-25 01:43:44
802
原创 网络和I/O
一、网络HttpURLConnection 类HttpURLConnection 类是基于HTTP协议的,其底层是通过Socket实现的。URL请求的类别: 分为二类,GET与POST请求。二者的区别在于: a:) get请求可以获取静态页面,也可以把参数放在URL字串后面,传递给servlet, b:) post与get的不同之处在于post的参数不是放在URL字串
2016-07-21 12:51:11
1822
原创 代码学习
1.Fragment的onCreateView()方法里,学习用代码添加布局,控件,及它们的属性设置。 @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
2016-07-20 22:22:26
295
转载 Handler详细
一、Handler概述1.Handler多线程通信机制。2.利用线程和Handler,解决耗时操作和更新UI 的问题。3.Android的UI控件是非线程安全的,在其他线程更新UI会出现异常。Android为了解决这种问题引入了Handler机制。4.Handler是Android中引入的一种让开发者参与处理线程中消息循环的机制。每个Hanlder都关联了一个线程,每个线程内部都维护了一个消息队列M
2016-07-20 14:29:41
420
原创 Java 初始化与清理
初始化与清理正是涉及安全的两个重要问题。 1.用构造器初始化 构造器的名称与类名相同 不接受任何参数的构造器叫默认构造器,无参构造器。 构造器是特殊的方法,没有返回值。 java中将初始化与创建捆绑在一起。2.方法重载 任何程序设计语言都具备的一项重要特性就是对名字的运用。 当创建一个对象时
2016-07-19 09:09:03
325
原创 GeekBand第十周笔记
本章主要是讲述 传感器 和LBS百度地图。 一、 传感器 1、 从系统服务中获得传感器管理器SensorManager mSensorManager=(SensorManager)getSystemService(Context.SENSOR_SERVICE);2、 从传感器管理器中获得传感器,比如方向传感器。 mSensorManager.getDefaultSensor(Sensor.
2016-07-17 17:36:41
317
原创 BroadcastReceiver
1.BroadcastReceiver机制Android广播分为两个方面:广播发送者和广播接收者,通常情况下,BroadcastReceiver指的就是广播接收者(广播接收器)。广播作为Android组件间的通信方式,可以使用的场景如下: 1.同一app内部的同一组件内的消息通信(单个或多个线程之间); 2.同一app内部的不同组件之间的消息通信(单个进程); 3.同一app具有多个进程的不同
2016-07-15 14:02:19
545
原创 程序的基本结构
结构化程序设计的三种基本结构是:顺序结构,选择结构和循环结构。顺序结构程序的各操作是按照它们出现的先后顺序执行。选择结构表示程序的处理步骤出现了分支,它需要根据某一特定的条件选择其中的一个分支执行。选择结构有单选择,双选择和多选择三种形式。循环结构表示程序反复执行某个或某些操作,直到某条件为假(或为真)时才可终止循环。 在循环结构中最主要的是: 什么情况下执行循环 那些操作需要
2016-07-14 09:22:34
1443
原创 Java变量
数据是以常量和变量两种方法形式进行存储和表示的,常量较之变量,无论是使用频率和使用事项都要少的多。所以,这里以介绍变量为主。1.变量是什么 a.变量是可以改变的数据。变量在程序语言中扮演者最基本的角色。b.变量可以用来存放数据,而使用变量之前则必须先声明它所预保存的数据类型。例如:int a;c.变量 是利用声明的方式,将内存中的某个块保留下来以供程序使用。声明一个变量时,编译程序会在内存里开辟一
2016-07-11 21:23:38
203
转载 Activity生命周期详解(四)
四、重新创建activity 有几个场景中,activity是由于正常的程序行为而被Destroy的,例如当用户点击返回按钮或是activity通过调用finish()来发出停止信号。系统也有可能会在activity处于stop状态且长时间不被使用,或是在前台activity需要更多系统资源时关闭后台进程,以图获取更多的内存。当activity是因为用户点击Back按钮或是activity通过调用
2016-07-11 11:19:52
350
转载 Activity生命周期详解(三)
三、停止与重启 Activity恰当的停止与重启我们的activity是很重要的。在activity生命周期中,他们能够确保用户感知到程序的存在并不会丢失他们的进度。在下面一些关键的场景中会涉及到停止与重启:*用户打开最近使用的app菜单并从我们的app切换到另一个app,这个时候我们的app是被停止的。如果用户通过手机主界面的启动程序图标或最近使用程序窗口回到我们的app,那么我们的activit
2016-07-10 21:06:17
265
转载 Activity的生命周期详解(二)
二、暂停与恢复在正常使用app时,前端的一、启动与销毁activity有时会被其他可见的组件阻塞(obstucted),从而导致目前的一、启动与销毁activity进入Pause状态。例如,当打开一个半透明的一、启动与销毁activity时(例如以对话框的形式),之前的activity会被暂停。只要之前的activity仍然部分可见,这个activity就会一直处于Paused状态。然而,一旦之前的
2016-07-10 15:39:37
372
原创 GeekBand第九周笔记
1.为什么使用多进程android中一个应用默认是一个进程,但是android平台对每个进程有内存限制,如24M等。如果应用有两个进程,则该应该的总内存限制是2*24m。使用多进程就可以使得我们一个apk所使用的内存限制加大几倍。所以可以借此图片平台对应用的内存限制,比如一些要对图片、视频、大文件进程处理的好内存的应用可以考虑用多进程来解决应用操作不流畅问题。2.进程,多进程是什么进程是资源分配的基
2016-07-10 12:01:03
308
转载 Activity的生命周期详解(一)
一、启动与销毁activity 学习关于activity生命周期的基础知识,用户如何启动应用及执行基本的activity的创建二、暂停与恢复activity 学习activity暂停发生时,我们应该做哪些事情三、停止与重启activity 学习用户离开activity与返回activity时会发生的事情四、重新创建activity 学习当我们的activity被销毁时发生了什么事情,以及在有
2016-07-07 22:20:36
494
原创 ContentProvider详解
ContentProvider主要用于在不同的应用程序之间实现数据共享的功能,它提供了一套完善的机制,允许一个程序访问另一个程序的数据,同时还能保证被访数据的安全性。内容提供器的用法有两种: 1、 是使用现有的内容提供器来读取和操作相应程序中的数据。 2、 创建自己的内容提供器给我们的程序数据提供外部访问接口。访问其他程序的使用步骤: 1.获得ContentReso
2016-07-05 23:10:26
418
原创 GeekBand第八周笔记
一、线程是什么 线程,有时被称为轻量级进程,是程序执行流的最小单元。一个标准的线程由线程ID,当前指令指针,寄存器集合和堆栈组成。另外,线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。 一个线程可以创建和撤销另一个线程,同一进程的多个线程之
2016-07-03 15:54:03
305
原创 Java核心技术卷1 第十四章 多线程
14.1 什么是线程 一个程序同时可以执行多个任务。通常,每一个任务称为一个线程,可以同时运行一个以上线程的程序称为多线程程序。多进程与多线程的区别:每个进程拥有自己的一整套变量,而线程则共享数据。听起来有些危险。然而,共享变量使线程之间的通信比进程间通信更有效,更容易。 与进程相比,线程更轻量级,创建,撤销一个线程比启动新进程的开销要小的多。Thread.sleep();调用这个
2016-07-02 21:55:31
767
原创 Java 字符串常用操作(String类)
1、 获得指定字符分割的内的内容 String str = "aa;bb;cc;dd"; String strm[] = str.split(";");//返回的数组就是{aa,bb,cc,dd} System.out.println(strm[1]); //第一个跟第二个分号间内容 System.out.println(strm[str
2016-07-01 19:03:01
731
原创 android焦点
android:focusable="false" android:focusableInTouchMode="false" android:clickable="true" android:enabled="true" android:state_enabled="false" android:state_pressed="true" android:state_focuse
2016-06-30 18:03:42
310
原创 GeekBand 第七周笔记
本章主要是要从网络中获得数据,并且解析,在android端渲染出来。 1.权限,获取网络数据需要权限<uses-permission android:name="android.permission.INTERNET"/>2.URL 统一资源定位符 URL,统一资源定位符是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL
2016-06-26 12:10:55
383
原创 Android数据库查询语句
/** * Query the given table, returning a {@link Cursor} over the result set. * * @param table The table name to compile the query against. * @param columns A list of which columns t
2016-06-25 22:03:41
2041
原创 AsyncTask
AsyncTask异步任务,public abstract class AsyncTask<Params, Progress, Result>{ /** * Runs on the UI thread before {@link #doInBackground}. * * @see #onPostExecute * @see #doInBackgroun
2016-06-25 17:39:20
236
转载 Android之判断当前网络状态
/** * 检测网络是否可用 * @return */ public boolean isNetworkConnected() { ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); N
2016-06-23 18:56:35
353
原创 String类及常用方法
public final class Stringextends Objectimplements Serializable CharSequence Comparable<T>一、构造函数 String(byte[ ] bytes):通过byte数组构造字符串对象。 String(char[ ] value):通过char数组构造字符串对象。 String
2016-06-23 11:25:18
306
原创 计算时间和时差
1.得到当前时间System.currentTimeMillis()2.计算时差。 用当前的系统时间减去之前保存的系统时间//之前保存的时间long beforTime=System.currentTimeMillis();//现在保存的时间long nowTime=System.currentTimeMillis();//计算间隔时间差long time=nowTime-bef
2016-06-21 11:00:15
678
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人