- 博客(96)
- 资源 (8)
- 收藏
- 关注
原创 第三方包和主包引了相同的基础库
1、以仓库方式引入,会取高版本(基础包包名一样的情况下)compile(group: 'com.bumptech.glide', name: 'glide', version: '1.0.0', ext: 'aar')compile(group: 'com.bumptech.glide', name: 'glide', version: '1.0.2', ext: 'aar')
2016-11-21 17:18:39
412
原创 apk二次打包
1、删除meta-inf2、重新签名 jarsigner -verbose -keystore test.keystore -signedjar signed.apk orign_unsigned.apk test.keystore3、验证签名信息 jarsigner -verify xxx.apk4、对齐 zigalign -v 4 unaligned.apk aligned.ap
2016-06-13 15:35:21
576
原创 AndroidStudio JNI
1、创建接口文件public class JniInterface { native public String getStringFromJni();}2、build工程生成class文件,定位到class文件目录命令行:javah -jni com.test.ndk.JniInterface生成 com.test.ndk.JniInterface.h 头文
2016-01-11 17:08:52
574
转载 UncaughtExceptionHandler
如果使用默认的UncaughtHandler,则崩溃后会弹出 系统的『XX应用停止运行』对话框自定义 unCaughtExceptionHandlerThread.setDefaultUncaughtExceptionHandler(new ExceptionHandler());public class ExceptionHandler implements Thread
2015-12-25 11:15:04
1026
转载 Java内存
Java内存管理:深入Java内存区域 本文引用自:深入理解Java虚拟机的第2章内容 Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人却想出来。 概述: 对于从事C和C++程序开发的开发人员来说,在内存管理领域,他们既是拥有最高权力的皇帝,又是从事最基础工作的劳动人民—既拥有每一个对象的“所有权”
2015-01-15 13:32:56
600
转载 Eclipse 调试
摘要:调试不仅可以查找到应用程序缺陷所在,还可以解决缺陷。对于Java程序员来说,他们不仅要学会如何在Eclipse里面开发像样的程序,更需要学会如何调试程序。本文介绍了Java程序员必知的10个调试技巧,保证让你受益匪浅!调试可以帮助识别和解决应用程序缺陷,在本文中,作者将使用大家常用的的开发工具Eclipse来调试Java应用程序。但这里介绍的调试方法基本都是通用的,也适用于Net
2015-01-14 15:00:19
505
转载 强引用,软引用,弱引用,虚引用
SoftReference、Weak Reference和PhantomRefrence分析和比较 本文将谈一下对SoftReference(软引用)、WeakReference(弱引用)和PhantomRefrence(虚引用)的理解,这三个类是对heap中java对象的应用,通过这个三个类可以和gc做简单的交互。 强引用: 除了上面提到的三个引用之外,还有一个引用
2014-09-29 16:19:00
562
原创 Merge
xmlns:tools="http://schemas.android.com/tools" android:id="@+id/container" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#00ff00" >
2014-09-25 14:56:27
676
转载 Android中使用html
Android系统提供了对简单的HTML标签的支持,方便开发者设置格式化的文本内容,比如斜体、粗体等。 通过android.text.Html.fromHtml(String source)函数可以获取一个格式化后的文本显示对象。目前支持如下的HTML标签:Supported HTML-TagsTagsFormatb, strongB
2014-05-22 10:54:42
3961
转载 AddToBackStack
在使用Fragment的时候我们一般会这样写: FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); transaction.replace(R.id.content_view, fragment, fragment.getClass().getNa
2014-05-21 13:52:46
1863
转载 Activity,Fragment状态保存
Activityandroid:alwaysRetainTaskState 用法 用来标记Activity所在的Task的状态是否总是由系统来保持——“true”,表示总是;“false”,表示在某种情形下允许系统恢复Task 到它的初始化状态。默认值是“false”。这个特性只针对Task的根Activity有意义;对其它Activity来说,忽略之。
2014-05-20 16:27:39
14126
2
转载 屏幕适配
本文将告诉你如何让你的应用程序支持各种不同屏幕大小,主要通过以下几种办法:让你的布局能充分的自适应屏幕根据屏幕的配置来加载合适的UI布局确保正确的布局应用在正确的设备屏幕上提供可以根据屏幕大小自动伸缩的图片使用 "wrap_content" 和 "match_parent" 为了确保你的布局能够自适应各种不同屏幕大小,你应该在布局的视图中使用"wrap_conten
2014-04-25 09:48:52
876
转载 观察者模式
简单地说,观察者模式定义了一个一对多的依赖关系,让一个或多个观察者对象监察一个主题对象。这样一个主题对象在状态上的变化能够通知所有的依赖于此对象的那些观察者对象,使这些观察者对象能够自动更新。 观察者模式的结构 观察者(Observer)模式是对象的行为型模式,又叫做发表-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-收听者(Sou
2014-03-02 22:50:54
688
转载 单例模式
我们第一次写的单例模式是下面这个样子的: Java代码 /** * 实现单例访问Kerrigan的第一次尝试 */ public class SingletonKerriganA { /** * 单例对象实例 */ private static SingletonKerriganA instance =
2014-03-02 22:18:43
618
转载 签名
在Android系统中,所有安装到系统的应用程序都必有一个数字证书,此数字证书用于标识应用程序的作者和在应用程序之间建立信任关系,如果一个permission的protectionLevel为signature,那么就只有那些跟该permission所在的程序拥有同一个数字证书的应用程序才能取得该权限。Android使用Java的数字证书相关的机制来给apk加盖数字证书,要理解android的数字
2014-03-02 21:53:08
632
转载 Android 工具
------------------------------- TraceView ---------------------------------一、TraceView简介 TraceView是AndroidSDK里面自带的工具,用于对Android的应用程序以及Framework层的代码进行性能分析。 TraceView是图形化的工具,最终它会产
2014-03-02 21:13:57
720
转载 Serizlizable Parcelable
android 中自定义的对象序列化的问题有两个选择一个是Parcelable,另外一个是Serializable。一 序列化原因:1.永久性保存对象,保存对象的字节序列到本地文件中;2.通过序列化对象在网络中传递对象;3.通过序列化在进程间传递对象。 二 至于选取哪种可参考下面的原则:1.在使用内存的时候,Parcelable 类比Serializ
2014-03-02 18:11:19
1168
转载 Android系统框架
从上图中可以看出,Android系统架构为四层结构,从上层到下层分别是应用程序层、应用程序框架层、系统运行库层以及Linux内核层,分别介绍如下: 1)应用程序层 Android平台不仅仅是操作系统,也包含了许多应用程序,诸如SMS短信客户端程序、电话拨号程序、图片浏览器、Web浏览器等应用程序。这些应用程序都是 用Java语言编写的,并且这些应用程序都是
2014-03-02 17:37:19
570
转载 Proguardgui
1、拷贝Android项目中“proguard.cfg”文件到你指定的位置,并改名为“proguard.pro”,此步是为proguardgui应用做前期的配置。2、在android开发sdk相应的目录下找到proguardgui启动入口,mac os上的路径如下“/Users/jayhomzhou/IDE/Android/adt-bundle-mac/sdk/
2014-02-28 14:39:43
1032
1
转载 Gson
使用ava关键字transient Java代码 private transient int value = 3; 在序列化的时候value不会生成到json字符串中。 使用Gson提供的注解@Expose Java代码 @Exclude private String value;
2014-02-27 16:58:23
1714
转载 编译型 解释型
计算机并不能直接接受和执行用高级语言编写的源程序,源程序在输入计算机时,通过一种翻译程序翻译成机器语言形式的目标程序,计算机才能识别.这种翻译程序有两种形式:一种是编译方式,一种是:解释方式. 那什么是编译方式和解释方式? 编译方式:事先编好一个称为编译程序的机器语言程序,作为系统软件存在在电脑中,当用户输入高级语言编写的源程序时,此计算机中的编译程序直接把用
2014-02-27 15:20:07
841
转载 静态变量初始化
我们大家都知道,对于静态变量、静态初始化块、变量、初始化块、构造器,它们的初始化顺序以此是(静态变量、静态初始化块(顺序按声明顺序))>(变量、初始化块)>构造器。我们也可以通过下面的测试代码来验证这一点: Java代码 public class InitialOrderTest { // 静态变量 public static String staticField = "静态变
2014-02-27 11:17:29
2013
转载 屏幕旋转
个人学习笔记:很多时候会用到屏幕旋转时需要对一些数据进行保存,例如当横竖屏区切换时要保存先前屏幕的一些数据和状态,个人认为有两个方法提供使用:1.当前的Activity不销毁:那么就需要在AndroidManifest.xml配置文件中的Activity标签下面添加:android:configChanges="orientation|keyboardHidden"
2014-02-24 10:55:50
625
转载 onSaveInstanceState和onRestoreInstanceState
当某个activity变得“容易”被系统销毁时,该activity的onSaveInstanceState就会被执行,除非该activity是被用户主动销毁的,例如当用户按BACK键的时候。 注意上面的双引号,何为“容易”?言下之意就是该activity还没有被销毁,而仅仅是一种可能性。这种可能性有哪些?通过重写一个activity的所有生命周期的onXXX方法,包括onSaveInstanc
2014-02-24 10:37:05
732
转载 跨进程调用Activity
【跨进程调用activity】跨进程调用Activity的目的比较简单,就是Application A中,有个Activity,想要给其它Application B调用,这时候就要分两步进行:(1) 在Application A的Manifest中设置Activity的属性[java] view plaincopyprint?
2014-02-19 11:14:05
802
转载 三次握手 四次挥手
TCP/IP 状态机,如下图所示: 在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接,如图1所示。 (SYN包表示标志位syn=1,ACK包表示标志位ack=1,SYN+ACK包表示标志位syn=1,ack=1) (1) 第一次握手:建立连接时,客户端A发送SYN包(SEQ_NUMBER=j)到服务器B,并进入SYN_SEND状态,等待服
2014-02-17 18:03:07
521
转载 Java内存分配
本文将由浅入深详细介绍Java内存分配的原理,以帮助新手更轻松的学习Java。这类文章网上有很多,但大多比较零碎。本文从认知过程角度出发,将带给读者一个系统的介绍。进入正题前首先要知道的是Java程序运行在JVM(Java Virtual Machine,Java虚拟机)上,可以把JVM理解成Java程序和操作系统之间的桥梁,JVM实现了Java的平台无关性,由此可见JVM的重要性。所以在
2013-10-21 16:14:52
634
转载 Activity切换动画
在Activity的Theme中android:windowAnimationStyle字段定义跳转动画。 指向的Style通常由4个item组成: android:activityOpenEnterAnimation 执行Open动作时,进入的Activity执行的动画 android:activityOpenExitAnimation 执行Open动作
2013-10-09 17:30:58
1015
转载 正则表达式
1. 正则表达式规则1.1 普通字符 字母、数字、汉字、下划线、以及后边章节中没有特殊定义的标点符号,都是"普通字符"。表达式中的普通字符,在匹配一个字符串的时候,匹配与之相同的一个字符。 举例1:表达式 "c",在匹配字符串 "abcde" 时,匹配结果是:成功;匹配到的内容是:"c";匹配到的位置是:开始于2,结束于3。(注:下标从0开始还是从1开始,
2013-09-12 11:50:59
569
转载 UML
在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency) 1. 泛化(Generalization) 【泛化关系】:是一种继承关系,表示一般与特殊的关系,它指定了子类如何特
2013-09-12 10:08:56
516
转载 measure layout draw
框架分析在之前的下拉刷新中,小结过触屏消息先到WindowManagerService(Wms)然后顺次传递给ViewRoot(派生自Handler),经decor view到Activity再传递给指定的View,这次整理View的绘制流程,通过源码可知,这个过程应该没有涉及到IPC(或者我没有发现),需要绘制时在UI线程中通过ViewRoot发送一个异步请求消息,然后ViewRoot自
2013-08-15 11:30:23
3694
转载 事件分发
1、View的事件分发比如说你当前有一个非常简单的项目,只有一个Activity,并且Activity中只有一个按钮。你可能已经知道,如果想要给这个按钮注册一个点击事件,只需要调用:[java] view plaincopybutton.setOnClickListener(new OnClickListener() { @Ov
2013-08-15 10:56:55
6583
1
原创 常用ADB命令
1、列出当前连接的所有设备adb devices2、安装apkadb -s emulator-5556 install helloWorld.apk如果有多个设备时,用-s 设备序号 来指定设备adb install -r helloWorld.apk -r 表示强制安装3、卸载apkadb -s emulator-5556
2013-08-13 16:06:14
739
转载 经典算法
分治算法一、基本概念 在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅立叶变换(快速傅立叶变换)…… 任何一个可以用计算机求解的
2013-08-07 16:53:52
904
转载 排序算法
1. 选择排序选择排序的基本思想是遍历数组的过程中,以 i 代表当前需要排序的序号,则需要在剩余的 [i…n-1] 中找出其中的最小值,然后将找到的最小值与 i 指向的值进行交换。因为每一趟确定元素的过程中都会有一个选择最大值的子流程,所以人们形象地称之为选择排序。举个实例来看看:初始: [38, 17, 16, 16, 7, 31, 39, 32, 2, 11]i = 0:
2013-08-07 15:05:47
986
转载 Java引用传递&值传递
当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 答:是值传递。Java 编程语言只有值传递参数。当一个对象实例作为一个参数被传递到方法中时,参数的值就是该对象的引用一个副本。指向同一个对象,对象的内容可以在被调用的方法中改变,但对象的引用(不是引用的副本)是永远不会改变的。Java参数,不管
2013-08-07 14:42:40
447
转载 Service
1、Service的种类 按运行地点分类:类别区别 优点缺点 应用本地服务(Local)该服务依附在主进程上, 服务依附在主进程上而不是独立的进程,这样在一定程度上节约了资源,另外Local服务因为是在同一进程因此不需要IPC,也不需要AIDL。相应bindService会方便很多。 主
2013-07-30 11:55:07
652
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人