- 博客(35)
- 资源 (5)
- 收藏
- 关注
原创 Linux学习笔记
原创一些常用快捷键c(ctrl)1. c + l 清屏2. c + c 终止程序3. 历史命令切换: histroly1. 向上切换 c + p2. 向下 c + n光标移动:1. 向左:c + b2. 右 c + f3. 行首 c + a4. 行尾 + e根目录1. bin 存放我们常用的命令2. boot 开启启动linux的一些核心文件.包括连接文件和一些镜像文件3. d
2016-12-03 15:41:01
742
原创 GreenDao数据库框架 最精简使用教程 并对其进行简单封装
GreenDao框架的使用步骤:(android studio)1.首先在project的build.gradle下进行添加如下依赖:dependencies { classpath 'org.greenrobot:greendao-gradle-plugin:3.1.1' }2.然后在Module的build.gradle下添加如下: sourceSets{ main{
2016-09-10 23:08:22
3750
原创 实现点击view并隐藏与显示指定view
private void togle() { ll_des_container.measure(0, 0); int start = ll_des_container.getMeasuredHeight(); //动画的开始高度 int end = 0; //动画的结束高度 if (mIsOpen) {//折叠
2016-06-12 23:17:15
2852
原创 安卓实现按返回键回到桌面以及再一次按返回键退出应用
再做一个即时通信的应用的时候,由于每次都要登录,并且要一直保持通信,如果按返回键后会退出应用,这样对用户的体验不是很好,所以想到了微信和QQ的返回键回到桌面的效果,于是进行了重写onkeyDown()方法,发现解决了该问题./** * 设置返回键不关闭应用,回到桌面 * * @param keyCode * @param event * @retu
2016-06-07 22:48:09
8154
原创 常用的正则表达式
正则表达式,一个十分古老而又强大的文本处理工具,仅仅用一段非常简短的表达式语句,便能够快速实现一个非常复杂的业务逻辑。熟练地掌握正则表达式的话,能够使你的开发效率得到极大的提升。下面是@技匠 整理的,在前端开发中经常使用到的20个正则表达式。 正则表达式经常被用于字段或任意字符串的校验,如下面这段校验基本日期格式的JavaScript代码: var reg = /^(\d{1,4}
2016-05-14 21:20:57
441
原创 基本排序(包括插入,选择,冒泡排序)
比较重要的三种基本排序其中插入排序最优,选择排序居中,冒泡排序最差package com.zzw.排序;public class Alogrithm { public static void main(String[] args) { int[] datas = new int[10]; // 初始化数据 initData(datas);
2016-05-06 23:49:39
2692
原创 链表,栈和队列
链表1.创建链表package com.zzw.链表;/** * 非常基本的单项链表 * @author john * */public class Node { Node next=null; int data; public Node(int d) { data=d; } /* * 添加一个结点 */ vo
2016-04-30 00:31:49
378
原创 数组和字符串
数组和字符串1.散列表 散列表是一种将键(key)映射为值(value)从而实现快速查找的数据结构.package com.zzw.array;import java.util.HashMap;/** * 散列表-散列函数-哈希表 * @author john * */public class Hash { public HashMap<Integer, Student> bui
2016-04-30 00:29:30
344
原创 Android性能优化
Android UI 渲染机制1.要求尽量将系统每次渲染的时间控制在16ms之内。如果不能够在16ms内完成渲染的话有可能造成丢帧的现象,即当前该重绘的帧被未完成的逻辑阻塞。 2.避免Overdraw,Overdraw过度的绘制会浪费很多的CPU、GPU资源 3.优化布局层级,优化布局的第一个方法就是–降低View树的高度。建议View树的高度不超过10层。 4.避免嵌套过多无用的布局。可以使
2016-04-09 23:54:38
352
原创 AsyncTask详解
package company.zzw.john.threadtest;import android.app.ProgressDialog;import android.os.AsyncTask;import android.widget.Toast;/** * Created by john on 2016/4/3. *//** * Params------第一个泛型参数设置为Void,
2016-04-03 16:07:24
334
原创 安卓的一点小问题
1.layout中创建的.xml文件的起名范围:(a-z)(0-9)(_ .)2.为了满足线程间的通信,android提供了 Handler和Looper3.如果在android应用中要发送短信,那么要在mainfest文件中添加 android.permission.SEND_SMS权限4.在对一些资源以及状态的操作保存,最好是保存在生命周期的onPause函数中。 onCreate函数:初始
2016-03-30 23:24:18
873
原创 每天算法01
对于一个由0-n的所有数按照升序组成的序列,进行筛选,每次取所有数字从小到大的第奇位数个数字,并将其丢弃,重复这个过程直到只剩下最后一个数,请求出这最后一个人数:package com.zzw.cacl;import java.util.Scanner;public class Suanfa02 { public static void main(String[] args) {
2016-03-22 23:22:17
469
原创 java——基础02
面向对象软件开发的优点:1代码开发模块化,更以维护和更新 2代码复用 3增强代码的可靠性和灵活性 4增强代码的可理解性 5面向对象编程有很多重要的特性:比如,封装,继承,多态和抽象;封装的定义:封装给对象提供了隐藏内部特性和行为的能力。对象提供一 些能被其他对象访问的方法来改变它内部的数据,在java中有三种修饰符 private,protected,public给其他的位于同一个包或者
2016-03-21 23:26:16
473
原创 断点续传实现文件下载
package com.zzw.download;import java.io.BufferedReader;import java.io.File;import java.io.FileOutputStream;import java.io.FileReader;import java.io.InputStream;import java.io.OutputStream;import
2016-03-21 09:47:31
685
原创 内存溢出,内存泄漏,内存优化
内存泄漏通俗的讲就是软件运行所需要的内存超出了他可以使用的内存内存泄漏就是我们对某一个内存空间的使用,使用过后没有及时的释放掉内存优化:Android比较容易发生内存溢出的部分就是图片的加载,其中 对于一些比较大的图片我们可以将其进行压缩,并且可以使用LruCache 缓存的目的来控制图片能够使用的内存。还有一些比较消耗资源的对象及时的关闭掉比如:Database,Conn,各种传感器,以及Se
2016-03-20 23:28:58
366
原创 若果有个100M大文件,需要上传至服务器,服务器表单最大上传2Mb,求解
使用http协议进行上传数据,假设真的每次 上传只能上传2M,我们可以采用多线程的 方式来进行文件传输,也就是把文件分段,假设可以开启50个线程同时进 行,即每个线程传2M这样既能加快传输的速度,又能够上传100M的文 件,但是实际上开启50个线程同时进行基本上很难实现,所以我们可以采 用断点续传的方式,来进行传输,可以开启几个线程,进行一次文件传输,然后记录下第一次几个线程传输的文件po
2016-03-20 23:18:17
4193
原创 单线程模型中Message,Handler,MessageQueue,Looper之间的关系
拿主线程来说,主线程启动时会调动Looper.prepare()方法 会初始化一个Looper,放入ThreadLocal中, 接着调用Looper.loop()方法死循环遍历MessageQueue,Handler的创建依赖于当前线程的looper类,如果当前线程没有Looper则必须调用Looper.prepare()。Handler.sendMessage到 MessageQueue,L
2016-03-20 22:57:52
447
原创 实现多线程下载
package com.zzw.download;import java.io.File;import java.io.InputStream;import java.io.RandomAccessFile;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;
2016-03-20 19:08:47
434
原创 handler机制
每个应用中都有多个子线程,而子线程不能够更新UI,所以使用handler来进行协助更新UI 在应用中又有MessageQueue来存放很多个Message,再通过handler吧子线程发来的消息放入MessageQueue中。 其中MessageQueue由looper循环器中的loop()方法来进行死循环遍历。 但是每开启一个应用就会开启一个java虚拟机,但是怎么能够让l
2016-03-18 10:20:07
316
原创 利用JsonObject解析Json数据
package json1.com.example.john.json_;import android.app.ProgressDialog;import android.os.Handler;import android.os.Message;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;
2016-03-17 23:18:48
871
原创 APP发生卡顿,以及优化思路
发生卡顿的两个原因是: 1.程序本身: 需要网络加载一些耗时的东西,网络不通畅可能导致暂时或者长久的卡顿 一些耗时的算法,内存消耗过于庞大 线程的阻塞,一些耗时的要尽量放到子线程中进行操作 主线程尽量直放一些UI控件, 网络请求放到子线程中 2硬件问题 解决: 安卓APP想让应用流畅运行,需要运行60帧每秒,则需要每帧的处理不超过16ms, 不要阻塞UI线程,不要再UI线程之外操
2016-03-17 23:09:43
1734
原创 OSI,TCP/IP,五层协议的体系结构,以及各层协议
OSI分层:物理层,数据链路层,网络层,传输层,会话层,表示层,应用层。 TCP/IP分层(4层):网络接口层,网际层,运输层,应用层 五层结构:物理层,数据链路层,网络层,运输层,应用层。 每一层的协议:
2016-03-16 23:13:13
713
原创 java的两种异常类型,以及区别。
java中有两种异常,受检查的异常以及不受检查的异常。 不受检查的异常不需要在方法或者构造函数上声明,就算方法或者构造函数的声明可能会抛出这样的异常。 受检查的异常必须要用throws抛出异常。Java中Exception和Error都是Throwable的子类, Exception用于用户程序可以捕获的异常, 而Error则定义了不期望被用户程序捕获的异常。‘ 异常处理
2016-03-16 23:06:19
6500
原创 java堆的结构,以及堆中的永久代
jvm的堆是运行时数据区,所有类的实例和数组都是在堆上分配内存,它在jvm在启动时被创建,对象所占的内存是由自动内存管理系统也就是垃圾回收器回收。堆内存是由存活的对象以及死亡的对象组成的。存活的对象不会被垃圾回收器回收,死亡的对象是还没有被垃圾回收器回收的对象。等下一个周期被回收。 如果一个对象被声明为null,则在第一个周期该对象不会被回收,在下一个周期中该对象被回收。 持久代:持久
2016-03-16 22:49:33
8741
原创 java基础01
ArrayList和LinkedList的区别:两者都实现了List接口,不同点: ArrayList是基于素银的数据接口,他的底层是数组。他可以以O(1)的时间复杂度来对数组进行随机访问,LinkedList是以元素列表的形式存储他的数据,每一个元素都连接在一起,查找元素的时间复杂度为O(n),对于ArrayList,LinkedList的插入,添加,删除操作速度更快,因为当元素被添加到任意位置
2016-03-16 10:38:08
559
转载 安卓获取当前时间并进行时间比较
package com.xjp.common.util;import java.sql.Timestamp;import java.text.ParsePosition;import java.text.SimpleDateFormat;import java.util.Date;import com.ttsoft.framework.util.DateUtil;/** * Title: 时间
2016-03-15 22:59:24
1334
原创 Java中实现HTTP网络通信(1.1)
编写http1.1 客户端程序: 能够与服务器建立TCP连接,并且把服务器的内容保存到一个文件中。package com.itzhewei.httpclinet;import java.io.BufferedReader;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;
2016-03-15 09:14:20
4380
原创 带具体进度的进度条对话框
/** * 带具体进度的进度条对话窗 * @param view */ public void click5(View view){ final ProgressDialog pd=new ProgressDialog(this); pd.setTitle("请稍后……"); //设置进度样式 pd
2016-03-13 00:25:15
694
原创 进度对话框
方法:public void click4(View view){ final ProgressDialog pd=new ProgressDialog(this); pd.setTitle(“请稍等片刻!”); pd.setMessage(“正在加载中……”); pd.show(); new Thread()
2016-03-12 20:14:29
258
原创 多选对话框
实现的方法为:public void click3(View view){ AlertDialog.Builder builder=new AlertDialog.Builder(this); builder.setTitle(“请选择您喜欢的水果:”); final String []items={“苹果”,”梨”,”香蕉”,”鸡蛋”,”火龙果”
2016-03-12 20:02:50
527
原创 单选对话框
单选对话框实现的方法为:public void click2(View view){ AlertDialog.Builder builder=new AlertDialog.Builder(this); builder.setTitle(“请选择您的性别”); final String items[]={“男”,”女”,”中间”};
2016-03-12 19:22:03
539
原创 工厂设计模式--确定对话框
确定对话框具体方法:public void click1(View view){ //工厂设计模式,得到创建对话框的工厂 AlertDialog.Builder builder=new AlertDialog.Builder(this); //设置标题 builder.setTitle(“警告请三思!”); /
2016-03-12 19:00:41
656
原创 如何在LIstView中实现复杂的数据(学生管理系统)
学生管理系统的实现MainActivity.java: package json1.com.example.john.my_;import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.text.Layout; import android.text.TextUtils;
2016-03-12 16:31:13
732
转载 如何高效学习安卓
Android开发的学习路线第一阶段:Java面向对象编程1、Java基本数据类型与表达式,分支循环。2、String和StringBuffer的使用、正则表达式。 3、面向对象的抽象,封装,继承,多态,类与对象,对象初始化和回收;构造函数、this关键字、方法和方法的参数传递过程、static关键字、内部类,Java的垃极回收机制,Javadoc介绍。 4、对象实例化过程、方
2016-03-12 13:49:07
605
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人