- 博客(337)
- 资源 (43)
- 问答 (1)
- 收藏
- 关注
原创 选择排序
/** * Created by Administrator on 2017/11/22 0022. * * 选择排序的时间复杂度是N方级别的 * 思想: * 1、从当前序列中找出最小的元素和第一位的数据元素进行比较,满足条件则交换。 * 2、继续从剩下的序列中找出最小的元素和第2位的数据元素进行比较,满足条件则交换。 * 3、依次类推,直到找完该序列的最后一个元素。 */p
2017-11-22 12:07:11
452
原创 Android中图片的压缩
Android中的图片一般在内存中显示是以位图的方式实现的,在磁盘上主要以扩展名为.jpeg,.png,.webp格式的文件存储。 图片占用的空间分为内存空间和磁盘空间。内存空间即从磁盘或网络读取图片加载到内存中所占用的内存字节数大小。磁盘空间即一张存放在手机存储介质里的一张图片占用存储介质的字节数。 内存空间和磁盘空间是两个完全不同的概念,但是很多初学者甚至工作3年以上的都没有搞清楚这件事情,
2017-10-05 17:17:28
704
原创 Android 中IPC实践
1、什么是进程间通信(IPC)Android中的进程间通信(IPC)是指一个应用的组件运行在不同的进程中,组件之间需要进行数据交换;或多个应用的组件之间需要进行数据交换。2、为什么使用进程间通信?一般在APP的实际开发中基本一个应用一个进程。使用多进程会增加降低代码的可阅读性,还要编写额外的跨进程通信代码,还可能带来一些不可预知的bug。比如单例模式失效,线程同步失效等等。这些将大大增加了APP的开
2017-10-04 10:00:14
872
原创 Android内存泄漏优化总结
Android内存泄漏优化总结什么是内存?Android中的内存是手机的RAM。主要包括如下几个部分: 1、寄存器 位于Cpu内部,速度最快。 2、栈 用于存放基本类型以及引用变量。 3、堆 主要用于存放数组和new出来的对象,它由垃圾回收器进行管理(GC)。对内存的优化也是处理的堆内存。 4、静态存储区 存储应用运行一直存在的数据(static变量) 5、常量池 存放定义的常
2017-10-04 08:54:52
8337
原创 Android数据库知识点总结
本文主要讲述建库建表的流程以及增删改查操作。Android 数据库可以考虑自带的SQLite数据库或各种开源的三方库。本文先讲述系统自带的SQlite数据库的相关操作然后讲述使用WCDB开源库。 1、SQlite数据库的使用1.1建库、建表、库升级第一步、编写继承SQLiteOpenHelper的子类并定义该子类相关的数据库名称、数据库版本信息。如下所示:public clas
2017-08-31 17:29:58
659
转载 如何使用Android Studio阅读开源代码
此文献给阅读开源代码的小白,大神绕道。。。。 在开发中,我们经常需要在Github上找一些开源项目用于自己的项目中,然而经常由于看不到其运行效果导致不断的“试错”,因此一般来说,本人在使用一个开源项目之前会将其下载并运行到手机上看效果。一方面可以准确判断出是否适合自己的项目,另一方面可以根据项目需求做一定的修改。1、 找到项目地址,点击DownloadZIP,下载完成后,解压到本地磁盘
2017-07-06 20:45:29
791
原创 SpringMVC参数绑定
方式一普通的文本类型数据1.1JSP页面的表单中指定url,提交方式即可。name即是pojo的属性名1.2对应的controller方法:2.1包装类型的表单2.2对应的包装类vo:本质:表单中的name就是pojo的属性。2.3 Controller方法:方式二文件上传的文件表单数据
2016-05-28 10:13:15
760
原创 Spring+SpringMVC+mybatis入门(环境搭建+crud)
大学毕业快一年了,在学校里做了一个android APP的项目,一直都只是熟悉android后台开发是最大的短板,工作后,公司都是自己的框架,这种开源框架基本也没时间去接触。app和后台都是基于公司的平台开发,我觉得一个人做也没有啥难度。一直在混日子,把整个app的架构分析了一遍。后来公司业务需求,我被迫PC端和android客户端都的做。真心现在啥都不是研究的很深。心累。吐槽完毕。接下来,记录我
2016-05-22 11:52:55
6540
原创 数据库sql
SQL注入问题对付 SQL 注入漏洞有两种方式:过滤敏感字符和使用参数化 SQL。 (1)过滤敏感字符的思路非常简单, 由于恶意攻击者一般需要在输入框中输入的文本一般含有 or、and、select、delete 之类的字符串片段,所以在拼接 SQL 之前检查用户提交的文本中是否含有这些敏感字符串,如果含有则终止操作。(2)使用参数化 SQLquery.SetParam
2016-04-07 17:59:28
4181
原创 String
String类被设计成一个最终类,不能被继承。1、字符串常量放在常量池,所有相同值得字符串常量是相等的。String str="测试字符串"; String str2="测试字符串";System.out.println("str2.equal(str)"+(str2.equals(str))); System.out.println("str2==str"+(str2==
2016-03-28 14:39:19
2251
原创 Java Object
public class Object { //静态本地方法的声明并在静态代码块调用 private static native void registerNatives(); static { registerNatives(); } public final native Class getClass(); public native i
2016-03-25 11:42:58
522
转载 【深入Java虚拟机】之八:Java垃圾收集机制
转载请注明出处:http://blog.youkuaiyun.com/ns_code/article/details/18076173对象引用 Java中的垃圾回收一般是在Java堆中进行,因为堆中几乎存放了Java中所有的对象实例。谈到Java堆中的垃圾回收,自然要谈到引用。在JDK1.2之前,Java中的引用定义很很纯粹:如果reference类型的数据中
2016-02-27 16:00:49
465
转载 【深入Java虚拟机】之七:Javac编译与JIT编译
转载请注明出处:http://blog.youkuaiyun.com/ns_code/article/details/18009455编译过程 不论是物理机还是虚拟机,大部分的程序代码从开始编译到最终转化成物理机的目标代码或虚拟机能执行的指令集之前,都会按照如下图所示的各个步骤进行: 其中绿色的模块可以选择性实现。很容
2016-02-27 15:59:43
539
转载 【深入Java虚拟机】之六:Java语法糖
转载请注明出处:http://blog.youkuaiyun.com/ns_code/article/details/18011009 语法糖(Syntactic Sugar),也称糖衣语法,是由英国计算机学家Peter.J.Landin发明的一个术语,指在计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员使用。Java中最常用的语法糖主要有泛型、变
2016-02-27 15:58:38
525
转载 【深入Java虚拟机】之五:多态性实现机制——静态分派与动态分派
转载请注明出处:http://blog.youkuaiyun.com/ns_code/article/details/17965867方法解析 Class文件的编译过程中不包含传统编译中的连接步骤,一切方法调用在Class文件里面存储的都只是符号引用,而不是方法在实际运行时内存布局中的入口地址。这个特性给Java带来了更强大的动态扩展能力,使得可以在类运行期间才能确定某些目标方法的直接引
2016-02-27 15:57:27
570
2
转载 【深入Java虚拟机】之四:类加载机制
转载请注明出处:http://blog.youkuaiyun.com/ns_code/article/details/17881581类加载过程 类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载、验证、准备、解析、初始化、使用和卸载七个阶段。它们开始的顺序如下图所示: 其中类加载的过程包括了加载、验证、准备、解析、初始化
2016-02-27 15:56:16
482
转载 【深入Java虚拟机】之三:类初始化
转载请注明出处:http://blog.youkuaiyun.com/ns_code/article/details/17845821 类初始化是类加载过程的最后一个阶段,到初始化阶段,才真正开始执行类中的Java程序代码。虚拟机规范严格规定了有且只有四种情况必须立即对类进行初始化:遇到new、getstatic、putstatic、invokestatic这四条字节
2016-02-27 15:55:04
429
转载 【深入Java虚拟机】之二:Class类文件结构
转载请注明出处:http://blog.youkuaiyun.com/ns_code/article/details/17675609 平台无关性 Java是与平台无关的语言,这得益于Java源代码编译后生成的存储字节码的文件,即Class文件,以及Java虚拟机的实现。不仅使用Java编译器可以把Java代码编译成存储字节码的Class文件,使用JRuby等其他语言的编译器也可
2016-02-27 15:53:47
444
转载 【深入Java虚拟机】之一:Java内存区域与内存溢出
转载请注明出处:http://blog.youkuaiyun.com/ns_code/article/details/175655031、JVM的生命周期启动Java应用程序,即启动一个Java虚拟机实例,该虚拟机实例有用户线程和守护线程两类,虚拟机可以设置线程为守护线程,从Java main方法的入口开始执行。当所有的非守护线程结束后,Java虚拟机实例也就退出了。
2016-02-27 15:52:24
497
原创 Android 抖动效果
shake.xml<!-- Copyright (C) 2007 The Android Open Source Project Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in complian
2016-02-18 12:58:11
726
原创 沉寖式状态栏
/** * 沉寖式状态栏 * @param on */ private void setTranslucentStatus(boolean on) { Window win = getWindow(); WindowManager.LayoutParams winParams = win.getAttributes();
2016-02-11 11:36:02
1394
原创 Tomact服务器配置实现app更新
1、配置Java运行环境从官网上下载最新的JDK:http://java.sun.com/javase/downloads/index.jsp ,下载后安装,选择想把JDK安装到的目录。JRE是包含在JDK中的,所以不需要再另外安装JRE了。右击“计算机”,点击“属性”,点击弹出窗口中左侧的“高级系统设置”,在弹出的选项卡中选择“高级->环境变量”。 假设
2015-11-16 12:50:20
1614
原创 Java并发提纲
一、线程的创建和线程的状态1、线程的开启和关闭通过start()开起。通过run方法return或自然消亡。9、Runnable和Thread实现多线程的区别 可以避免由于Java的单继承特性而带来的局限; 增强程序的健壮性,代码能够被多个线程共享,代码与数据是独立的;(同步问题) 适合多个相同程序代码的线程区处理同一资源的情况。sto
2015-11-15 10:11:59
459
原创 Android 路径
1. 图片放在sdcard中,Bitmap imageBitmap = BitmapFactory.decodeFile(path) (path 是图片的路径,Android获取图片资源的4种方式,跟目录是/sdcard)2. 图片在项目的res文件夹下面//得到application对象ApplicationInfo1. 图片放在sdcard中,Bitmap imageBitma
2015-11-15 10:02:23
432
原创 Androd tools介绍
Android SDK包含了各种各样的定制工具,简介如下:Android模拟器(Android Emulator )它是在你的计算机上运行的一个虚拟移动设备。你可以使用模拟器来在一个实际的Android运行环境下设计,调试和测试你的应用程序。Android调试桥(Android Debug Bridge (adb) )Adb 工具可以让你在模拟器或设备上安装应用程序
2015-11-15 09:59:33
440
原创 Android广播
广播机制1 . Adnroid的广播机制(以intent对象的形式广播出去)Android系统已经写好了广播机制,在我们照相的时候系统会自动生成照相事件并广播出去。当来短信的时候,系统会自动生成一个短信事件并广播出去。许许多多的事件都是由Android系统自动广播出去。我们也可以自定义发送广播事件,通过sendBroadcast(intent itt)方法将一个广播事件发送出去。Andro
2015-11-15 09:55:42
563
1
原创 Android数据库 contentprovider
SQLiteSQLite介绍:小型关系数据库,占用空间很小。我们可以使用SQLiteOpenHelper类来创建数据库对象。这个类有以下方法:getReadableDatabase():获得一个可读的数据库。getWritableDatabase():获得一个可写的数据库。下面是三个回调函数:onCreate(SQLiteDatabase db):当创建数据库的时候会自动调
2015-11-15 09:53:39
1086
原创 Android 知识点小结
Android专用驱动Logger 完全内存操作适合频繁读写Binder Client/Server模型进程间一次数据拷贝进程内直接调用Ashmem 使用文件描述符描述通过Binder在进程间传递Activity生命周期由ActivityManagerService管理Activity堆栈
2015-11-15 09:50:13
446
原创 字符串相关
/** * 功能:判断字符串是否为数字 * * @param str * @return */ private static boolean isNumeric(String str) { try { Pattern pattern = Pattern.compile("[0-9]*"); M
2015-11-15 09:47:45
407
原创 GPS相关
/** * 判断是否开启GPS * @param context * @return */ public boolean isOpenGps(Context context){ try { String str = Settings.Secure.getString(context.getContentResolver(), Settings.Secure.LOCATI
2015-11-15 09:45:39
392
原创 解压文件
/** * 解压文件到指定目录 * @param zipFile 待解压的文件 * @param descDir 解压文件后的路径 * @return */ @SuppressWarnings("rawtypes") public boolean unZipFiles(File zipfile, File descDir,Boolean delete_zip) {
2015-11-15 09:37:43
572
原创 网络连接工具类
/** * 返回当前设备是否连接网络 true为已连接 * @param context * @return */ public boolean isConnect(Context context) { try { ConnectivityManager conManager=(ConnectivityManager)context.getSystemService(
2015-11-15 09:34:59
499
原创 批量注册事件工具类
/** * 批量注册OnFocusChangeListener事件 * @param OnFocusChangeListener * @param view */ public void setOnFocusChangeListener(OnFocusChangeListener o,View... view){ try { int size=0; if(null
2015-11-15 09:31:34
919
原创 Android校验类积累
//检查电话号码public boolean checkPhone(String str){ try{ boolean flagphone = false; if(str.matches("^0?\\d{11}$")){ flagphone = true; }else if(str.matches("^(\\(?\\d{3,4}[-\\)])?\\d{7,8}$")
2015-11-15 09:22:24
412
原创 android 获取时间的工具类
public SimpleDateFormat dateSimple = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); public SimpleDateFormat dateSimple2 = new SimpleDateFormat("yyyy年MM月dd日 E"); public SimpleDateFormat dateSimple3 =
2015-11-15 09:19:45
720
原创 Android编码文件操作相关工具类
第一,app应用数据保存路径Android应用的数据是保存在data/data/包名目录下的。/** * 生成包的文件夹用于保存数据库 */ public void setPackageDir(Context context){ try { BS.packageDBMir=new File("/data/data/"+context.getPackageName()+"
2015-11-15 09:16:47
456
转载 Android性能优化之布局优化
性能优化之布局优化本文为Android性能优化的第二篇——布局优化,主要介绍使用抽象布局标签(include, viewstub, merge)、去除不必要的嵌套和View节点、减少不必要的infalte及其他Layout方面可调优点,顺带提及布局调优相关工具(hierarchy viewer和lint)。 目前性能优化专题已完成以下部分:性能优化总纲——性能问
2015-08-15 16:38:52
534
原创 Fragmen直接来回切换deno
思路:第一步,建立一个activity,用来管理fragment。第二步‘获取fragmentManger 和fragmentTraction.private FragmentManager fm;private FragmentTransaction ft;fm = getFragmentManager();ft = fm.beginTransaction();
2015-08-10 19:02:10
787
转载 使用Genymotion调试出现错误INSTALL_FAILED_CPU_ABI_INCOMPATI
当我们安装好Genymotion后,把Android运用部署到上面调试时,console控制台会报错:Installation error: INSTALL_FAILED_CPU_ABI_INCOMPATIBLE,这是因为系统里缺少了 Google Play 市场等各种谷歌服务应用,其实是因为版权问题,从 2.0 版本开始 Genymotion 提供的虚拟设备都已经移除了 Google Apps
2015-08-08 14:37:55
506
转载 [Android Studio]AS的常用配置
注释模板首先点击菜单栏的“File“->“Settings”,打开Settings窗口在搜索框中输入“Code Templates”选中Templates里面的Class选中Includes里面的File header在右边的录入框中添加注释模板快捷键配置Settings –> Keymap拼写检查Settings –> Inspections –> Spe
2015-08-08 10:49:01
1164
android 服务组件多线程交互
2014-10-31
GPS转百度坐标demo、
2014-10-28
Java Socket 读取TCP服务端数据包不完整
2015-01-15
TA创建的收藏夹 TA关注的收藏夹
TA关注的人