- 博客(38)
- 资源 (1)
- 收藏
- 关注
原创 Git常用
git详解:http://www.liaoxuefeng.com工作项目使用//缓存并更新代码 step1:git stash git pull git stash pop//查看文件状态 step2:git status//多个文件中间空格隔开 step3:git add 要提交的文件 要提交的文件step4:git c
2024-09-20 17:45:33
1182
1
原创 BlueTooth开发(1)---- BTUtil类
1.背景需求根据需求,在Android系统的蓝牙模块的基础上,对蓝牙机能进行自定义开发。主要还是调用Android中蓝牙相关的API,具体的实现过程后续会详细讲解。2.开发流程通过调用BluetoothAdapter.java中的源生接口,来封装一些符合自己需求的接口。private BluetoothAdapter m_bluetoothAdapter = null;// ...
2018-06-28 16:28:56
848
原创 Java核心技术----反射机制和动态代理分析
1.概述 (1)反射机制: Java 语言提供的一种基础功能,赋予程序在运行时自省(introspect,官方用语)的能力。通过反射我们可以直接操作类或者对象,比如获取某个对象的类定义,获取类声明的属性和方法,调用方法或者构造对象,甚至可以运行时修改类定义。(2)动态代理: 一种方便运行时动态构建代理、动态处理代理方法调用的机制,很多场景都是利用类似机制做到的,比如用来包装 RPC 调用...
2018-05-22 09:27:55
332
原创 Java核心技术----final、finally、 finalize的区别
1.概述 (1)final:(2)finally: (3)finalize:
2018-05-21 09:05:18
353
原创 Java核心技术----对Java平台的理解
1.概述(1)Java虚拟机机制(JVM)“书写一次,到处运行”, 能够非常容易获得跨平台能力. Java 通过字节码和 Java 虚拟机(JVM)这种跨平台的抽象,屏蔽了操作系统和硬件的细节,这也是实现“一次编译,到处执行”的基础。 流程: 源代码(.java文件) -> 编译 -> 字节码(.class文件) -
2018-05-16 17:27:52
338
转载 Android高效加载大图、多图解决方案,有效避免程序OOM
转载于: http://blog.csdn.net/guolin_blog/article/details/9316683高效加载大图片我们在编写Android程序的时候经常要用到许多图片,不同图片总是会有不同的形状、不同的大小,但在大多数情况下,这些图片都会大于我们程序所需要的大小。比如说系统图片库里展示的图片大都是用手机摄像头拍出来的,这些图片的分辨率会比我们手机屏幕的分辨率高
2018-02-02 15:35:54
182
转载 Android高性能编码优化
转载于: http://blog.csdn.net/guolin_blog/article/details/42318689避免创建不必要的对象创建对象从来都不应该是一件随意的事情,因为创建一个对象就意味着垃圾回收器需要回收一个对象,而这两步操作都是需要消耗时间的。虽说创建一个对象的代价确实非常小,并且Android 2.3版本当中又增加了并发垃圾回收器机制,这让GC操作时的停顿时间也
2018-02-01 21:01:21
260
转载 从源码的角度解析Android异步消息处理机制
转载于:http://blog.csdn.net/guolin_blog/article/details/99915691.前言Android UI是线程不安全的,如果在子线程中尝试进行UI操作,程序就有可能会崩溃。 在一个Activity中,当有多个线程更新UI时,并且没有枷锁机制,就会出现更新界面混乱,但是如果有枷锁机制的话,又会导致性能下降,此时使用Handler机制,通过消息队列,保证了
2017-10-09 16:59:04
546
1
转载 线程池(ThreadPoolExecutor)处理异步任务
转载于: http://blog.csdn.net/u010687392/article/details/498508031.前言我们在开发时候或多或少都会用到线程,而通常创建线程有两种方式:继承Thread类 实现Runnable接口这两种方式虽然都可以创建线程,但是是有区别的:主要区别在于在多线程访问同一资源的情况下,用Runnable接口创建的线程可以处理同一资源
2017-09-29 10:15:50
18410
原创 数组的拷贝及对象clone
1.前言java数组拷贝主要有四种方法,分别是循环赋值,System.arraycopy(), Arrays.copyOf()(或者Arrays.copyOfRange)和clone()方法。Java数组的复制操作可以分为深度复制和浅度复制。简单来说深度复制,可以将对象的值和对象的内容复制;浅复制是指对对象引用的复制。2.代码详解循环拷贝(速度相对比较慢) 用一个for循环进行元素的逐个拷
2017-09-25 17:47:32
604
转载 字符串连接用"+"和StringBuilder的append的区别
转载自 http://blog.csdn.net/jalon2015/article/details/533379251.前言字符串连接,用+进行连接,其实内部也是通过StringBuilder的append来实现的。一般情况进行字符串拼接用+就可以,系统内部会进行优化,但是如果是循环拼接,则需要用StringBuilder的append来实现。原因:因为如果是循环拼接,那么系统会在循环体内部创
2017-09-25 16:29:53
1109
原创 Retry机制
1.前言在日常开发中,有时在执行某些操作时,可能当时条件不满足,未能执行,但是后续的一定时间内,条件会满足,这时我们需要继续执行操作。为了达到这种效果,我们就需要使用到retry机制,在后续的规定时间里,有间隔的去尝试执行操作。2.具体流程private Handler m_Handler = new Handler(Looper.getMainLooper()) { @Overri
2017-09-25 15:25:16
2580
原创 Log管理
1.前言在平常的Android开发中,为了方便解决bug,优化代码性能,会在代码中合理的输出log,以此来测试代码的执行过程。 为了更好的管理log,并便于分析代码,我们需要将log进行统一管理。2.Log工具类LogUtil.java :import android.util.Log;/** * Created by zhaoying on 16-12-30. * TODO */pu
2017-09-25 14:36:20
448
转载 分析内存的使用情况(内存泄露)
转载于:http://blog.csdn.net/guolin_blog/article/details/42238633由于Android是为移动设备开发的操作系统,我们在开发应用程序的时候应当始终把内存问题充分考虑在内。虽然Android系统拥有垃圾自动回收机制,但这并不意味着我们就可以完全忽略何时去分配或释放内存。即使我们全部按照上一篇文章中给出的编程建议来去编写程序,还是会很有可能出现内存泄
2017-08-09 18:05:34
466
转载 合理管理Android内存
转载于:http://blog.csdn.net/guolin_blog/article/details/42238627有不少朋友都问过我,怎样才能写出高性能的应用程序,如何避免程序出现OOM,或者当程序内存占用过高的时候该怎么样去排查。确实,一个优秀的应用程序,不仅仅要功能完成得好,性能问题也应该处理得恰到好处。为此,我也是阅读了不少Android官方给出的高性能编程建议,那么从本篇文章开
2017-08-09 17:55:22
218
转载 Android 操作SQLite基本用法
转载于:http://blog.csdn.net/codeeer/article/details/30237597/在Android开发中SQLite起着很重要的作用,网上SQLite的教程有很多很多,不过那些教程大多数都讲得不是很全面。本人总结了一些SQLite的常用的方法,借着论坛的大赛,跟大家分享分享的。一.SQLite的介绍1.SQLite简介SQLite是一款轻型的数据库,是遵守ACID的
2017-07-24 18:54:53
332
转载 Linux终端am命令用法
转自:http://blog.csdn.net/u010164190/article/details/51384099一、概述作为一名开发者,相信对adb指令一定不会陌生。那么在手机连接adb后,可通过am命令做很多操作:(1) 拨打电话10086adb shell am start -a android.intent.action.CALL -d tel:10086(2) 打开网站www.gity
2017-07-17 18:16:17
4050
转载 C/C++中const与define应用上该怎么取舍
C/C++中const与define应用上该怎么取舍1.define和const机制define是在预编译的时候展开替换的,const是编译运行阶段使用。define没有类型,不做类型检查处理。只是替换。const常量有具体的类型,在编译的时候会进行类型检查。define宏定义仅仅是替换宏定义不分配内存,变量定义分配内存,const会在内存中分配。2.内存管理#define PI 3.1415
2017-07-14 18:07:01
260
原创 Android防止button短时间内多次被点击(具体间隔时间可自由选取)
1.背景在平常的Android开发中,有时需要对某个button做防护,防止在短时间内由于用户的多次点击,使后台的逻辑处理在短时间内被多次触发,最终可能导致应用崩溃,因此写了下面的小方法来解决这一问题.2.解决方案// 这里不去采用System.currentTimeMillis()或System.nanoTime()/1000000L这一方法(java中采用这种方法),// 因为它产生一个当前的
2017-05-03 16:50:18
2501
原创 常用数据类型转换(JAVA)
1.基本数据类型 **整型**: **byte**: 1byte -2^7~2^7-1 **short**: 2byte -2^15~2^15-1 **int**: 4byte -2^31~2^31-1 **long**: 8byte -2^63~2^63-1
2017-05-03 14:06:12
443
转载 Android 访问权限Permission详解
Android中有哪些受限制性访问的特性呢?具体的特性对应所需要的权限名称又是什么呢?具体可以在Android官方文档中查的。http://developer.android.com/reference/android/Manifest.permission.html需要注意的是,不同的权限可能对应了不同的API等级,因此,可能会出现兼容性问题。android.pe
2017-04-20 15:30:56
801
原创 Android线程同步
1.背景多个线程都在操作同一数据导致数据不一致,所以我们用同步机制来解决这些问题.同步锁:每个JAVA对象都有且只有一个同步锁,在任何时刻,最多只允许一个线程拥有这把锁。我们可以给共享资源加一把锁,这把锁只有一把钥匙。哪个线程获取了这把钥匙,才有权利访问该共享资源。 同步锁不是加在共享资源上,而是加在访问共享资源的代码段上。同步锁本身也一定是多个线程之间的共享对象。
2017-03-01 18:18:07
369
转载 【Android】条形码/二维码扫描——ZXing源码分析及相关jar包导入
转载自:http://blog.csdn.net/u010574567/article/details/51916604正在更新中 针对3.2.1版本源码 与其他版本代码可能会有出入,但核心思想基本不变。 首先从com.google.zxing.client.Android包中的目录结构分析:Book:这个文件夹中有5个类: BrowseBookListener
2016-12-28 10:56:42
1023
原创 Linux中创建Android Studio的快捷方式
首先在http://www.android-studio.org/中找到Linux版的Android Studio,即android-studio-ide-145.3360264-linux.zip,然后下载到本地解压.在解压出来的文件中找到studio.sh 文件,然后在终端中执行 ./studio.h ,即可运行Linux版的Android Studio. 但是,这样解压出来...
2016-12-23 14:28:42
2878
转载 Android资源文件中各种XML的作用与解释
转载于:http://blog.csdn.net/xiaoli100861/article/details/51766906众所周知,XML是一种可扩展标记语言,它被用来传输和存储数据。在Android中也会随处可见XML文件,包括一个android项目不可缺少的AndroidManifest.xml清单文件,res资源文件目录下的anim/drawable/layout/menu/val
2016-12-20 15:44:11
2058
转载 安卓开发注意点
转载自:http://blog.csdn.net/huangyabin001/article/details/307178411.命名基本原则 在面向对象编程中,对于类,对象,方法,变量等方面的命名应该本着描述性以及唯一标识性这两大特征来命名,才能保证资源之间不冲突,并且每一个都便于记忆。命名原则是:使名称足够长以便有一定的意义,并且足够短以避免冗长。2.命名
2016-10-24 11:57:32
393
转载 Set集合总结
转载自:http://blog.csdn.net/qq_33642117/article/details/52040345一,SetSet:注重独一无二的性质,该体系集合可以知道某物是否已近存在于集合中,不会存储重复的元素用于存储无序(存入和取出的顺序不一定相同)元素,值不能重复。对象的相等性 引用到堆上同一个对象的两个引用是相等的。如果对两个引用调用hashC
2016-10-19 15:27:16
237
转载 Java常用排序算法/程序员必须掌握的8大排序算法
本文由网络资料整理而来,如有问题,欢迎指正!转载自:http://blog.csdn.net/qy1387/article/details/7752973分类:1)插入排序(直接插入排序、希尔排序)2)交换排序(冒泡排序、快速排序)3)选择排序(直接选择排序、堆排序)4)归并排序5)分配排序(基数排序)所需辅助空间最多:归并排序所需辅助空间最少:堆排
2016-10-19 15:00:00
225
转载 Android Service完全解析
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/11952435相信大多数朋友对Service这个名词都不会陌生,没错,一个老练的Android程序员如果连Service都没听说过的话,那确实也太逊了。Service作为Android四大组件之一,在每一个应用程序中都扮演着非常重要的角色。它主要用于在后台处理一些耗时的逻辑,
2016-10-18 17:27:38
253
转载 多线程之 线程安全与非线程安全
多线程之 线程安全与非线程安全 ArrayList和Vector有什么区别? HashMap和HashTable有什么区别? StringBuilder和StringBuffer有什么区别? 这些都是Java面试中常见的基础问题。面对这样的问题,回答是:ArrayList是非线程安全的,Vector是线程安全的;HashMap是非线程安全
2016-10-14 13:51:15
246
转载 Collection总结
java提高篇(二十)-----集合大家族 在编写java程序中,我们最常用的除了八种基本数据类型,String对象外还有一个集合类,在我们的的程序中到处充斥着集合类的身影!java中集合大家族的成员实在是太丰富了,有常用的ArrayList、HashMap、HashSet,也有不常用的Stack、Queue,有线程安全的Vector、HashTable,也有线程不安全的
2016-10-11 16:43:28
294
转载 ArrayList总结
java提高篇(二一)-----ArrayList一、ArrayList概述 ArrayList是实现List接口的动态数组,所谓动态就是它的大小是可变的。实现了所有可选列表操作,并允许包括 null 在内的所有元素。除了实现 List 接口外,此类还提供一些方法来操作内部用来存储列表的数组的大小。 每个ArrayList实例都有一个容量,该容量是指
2016-10-11 16:41:22
218
转载 LinkedList总结
java提高篇(二二)---LinkedList一、概述 LinkedList与ArrayList一样实现List接口,只是ArrayList是List接口的大小可变数组的实现,LinkedList是List接口链表的实现。基于链表实现的方式使得LinkedList在插入和删除时更优于ArrayList,而随机访问则比ArrayList逊色些。 Li
2016-10-11 16:39:43
246
转载 HashMap总结
java提高篇(二三)-----HashMap HashMap也是我们使用非常多的Collection,它是基于哈希表的 Map 接口的实现,以key-value的形式存在。在HashMap中,key-value总是会当做一个整体来处理,系统会根据hash算法来来计算key-value的存储位置,我们总是可以通过key快速地存、取value。下面就来分析HashMap
2016-10-11 15:01:08
203
转载 Android多语言相关
Android多国语言文件夹文件汇总如下:中文(中国):values-zh-rCN中文(台湾):values-zh-rTW中文(香港):values-zh-rHK英语(美国):values-en-rUS英语(英国):values-en-rGB英文(澳大利亚):values-en-rAU英文(加拿大):values-en-rCA英文(爱尔兰):values-e
2016-10-11 14:42:02
213
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人