自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

梵依然的专栏

你必须非常努力,才能看起来毫不费劲

  • 博客(142)
  • 收藏
  • 关注

转载 android studio 2.0 preview 编译报错

Error:Internal error: (java.lang.ClassNotFoundException) com.android.repository.io.FileOpUtilsjava.lang.ClassNotFoundException: com.android.repository.io.FileOpUtilsat java.net.URLClassLoader.find

2015-12-14 09:53:12 984 1

转载 迭代与递归的区别

递归的基本概念:程序调用自身的编程技巧称为递归,是函数自己调用自己.一个函数在其定义中直接或间接调用自身的一种方法,它通常把一个大型的复杂的问题转化为一个与原问题相似的规模较小的问题来解决,可以极大的减少代码量.递归的能力在于用有限的语句来定义对象的无限集合.使用递归要注意的有两点:1)递归就是在过程或函数里面调用自身;2)在使用递归时,必须有一个明确的递归结束条件

2014-06-03 22:41:34 653

转载 写Java代码分别使堆溢出,栈溢出

我们知道,在JAVA中,可以使用关键字new来创建Java对象。例如,ArrayList list = new ArrayList();实际上,在创建完上面的一个对象后,在JVM中,会把new出来的对象存放在堆内存中,同时,在方法栈中存放着对象的引用关系。如果想要堆溢出,比较简单,可以循环创建对象或大的对象;如果想要栈溢出,可以递归调用方法,这样随着栈深度的

2014-06-03 22:40:21 1188

翻译 android设备兼容性

android被设计成可以在多种不同的设备上运行的系统,为了达到这个目的,android系统提供了一个动态app框架,在这个框架中你可以在动态文件(为不同屏幕大小的不同xml布局文件)中提供具体的配置资源,android会根据设备配置加载适当的资源。

2014-05-29 00:05:06 2056

翻译 android应用框架

android应用框架

2014-05-27 22:58:27 1048

翻译 android数据储存之应用安装位置

android数据储存之应用安装位置

2014-05-26 00:13:16 1638

翻译 android数据储存之存储方式

可以将数据储存在内置或可移动存储,数据库,网络,sharedpreference。        android可以使用Content provider来使你的私有数据暴漏给其他应用程序。一.sharedpreference        得到sharedpreference的两种方法:        1.getSharedPreferenced():使用这个方法你可以定义多个pr

2014-05-16 00:45:40 1391

转载 android 数据库操作execSQL()和rawQuery()

Android提供了一个名为SQLiteDatabase的类,该类封装了一些操作数据库的API,使用该类可以完成对数据进行添加(Create)、查询(Retrieve)、更新(Update)和删除(Delete)操作(这些操作简称为CRUD)。对SQLiteDatabase的学习,我们应该重点掌握execSQL()和rawQuery()方法。 execSQL()方法可以执行insert、del

2014-05-14 22:27:54 3159

转载 Fragment真正的onPause以及onResume

`Fragment`虽然有`onResume()`和`onPause()`方法,但是这两个方法是`Activity`的方法调用时机也与`Activity`相同,和`ViewPager`搭配使用这个方法就很鸡肋了,根本不是你想要的效果,这里介绍一种方法。```java@Overridepublic void setUserVisibleHint(boolean isVisibleToUs

2014-05-13 13:28:42 947

翻译 android layouts

1.引言两种定义布局的方式>1.xmlzho

2014-05-08 00:33:16 777

翻译 android Toasts

1.基础Context context = getApplicationContext();CharSequence text = "Hello toast!";int duration = Toast.LENGTH_SHORT;Toast toast = Toast.makeText(context, text, duration);toast.show();当然也可以将方

2014-05-07 22:56:07 899

翻译 android Dialogs

1.引言Dialog是对话框的基类,可以实现以下子类:AlertDialog,DatePickerDialog,TimPickerDialog。这些类为你定义了样式和结构,不过你可以使用DialogFragment作为对话框的内容。通过DialogFragment你可以自由控制你的对话框,而不是继承Dialog对象沿用Dialog对象的一些方法。当用户按返回键或屏幕翻转的时候要注意

2014-05-07 22:39:19 1009

转载 java NIO

Java NIO和IO的主要区别下表总结了Java NIO和IO之间的主要差别,我会更详细地描述表中每部分的差异。IO                NIO面向流            面向缓冲阻塞IO           非阻塞IO无 选择器面向流与面向缓冲Java NIO和IO之间第一个最大的区别是,IO是面向流的,NI

2014-05-06 23:16:57 486

转载 关于极光推送技术原理的几点思考

移动互联网应用现状因为手机平台本身、电量、网络流量的限制,移动互联网应用在设计上跟传统 PC 上的应用很大不一样,需要根据手机本身的特点,尽量的节省电量和流量,同时又要尽可能的保证数据能及时到达客户端。为了解决数据同步的问题,在手机平台上,常用的方法有2种。一种是定时去服务器上查询数据,也叫Polling,还有一种手机跟服务器之间维护一个 TCP 长连接,当服务器有数据时,实时推送

2014-05-06 22:26:10 1118 1

转载 Bitmap优化

1. 一个进程的内存可以由2个部分组成:`native和dalvik`,`dalvik`就是我们平常说的`java`堆,我们创建的对象是在这里面分配的,而`bitmap`是直接在`native`上分配的。一旦内存分配给`Java`后,以后这块内存即使释放后,也只能给`Java`的使用,所以如果`Java`突然占用了一个大块内存,即使很快释放了,`C`能用的内存也是16M减去`Java`最大占用

2014-04-28 12:39:58 706

原创 Android代码混淆

混淆器(ProGuard)---混淆器通过删除从未用过的代码和使用晦涩名字重命名类、字段和方法,对代码进行压缩,优化和混淆。结果是一个比较小的.apk文件,该文件比较难进行逆向工程。因此,当你的应用程序对安全敏感(要求高),例如当你授权应用程序的时候,混淆器是一种重要的保护手段。    混淆器被集成在android 构建系统中,所以你不必手动调用它。同时混淆器仅在发布模式下进行构建

2014-04-28 12:33:11 1354

转载 android -- MemoryFile 内存文件(IO性能优化)

前些天还自已写了一个内存文件用于http数据交互使用,没想到今天翻代码,尽然找到类似的现有实现,真是汗! 呵呵,那么就在这简要介绍一下吧!应用场合:1、对于I/O需要频繁操作的,主要是和外部存储相关的I/O操作,MemoryFile通过将 NAND或SD卡上的文件,分段映射到内存中进行修改处理,这样就用高速的RAM代替了ROM或SD卡,性能自然提高不少,对于Androi

2014-04-28 12:32:13 2871

转载 JAVA并发数据结构详解

一.BlockingDeque阻塞双端队列(线程安全):注意ArrayDeque和LinkedList仅仅扩展了Deque,是非阻塞类型的双端队列。BlockingQueue单向队列,其内部基于ReentrantLock + Condition来控制同步和"阻塞"/"唤醒"的时机;有如下几个实现类:ArrayBlockingQueue: “浮动相对游标”的数组,来实现有界的

2014-04-28 12:30:48 2379

转载 堆与栈

栈(操作系统):由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈栈使用的是一级缓存, 他们通常都是被调用时处于存储空间中,调用完毕立即释放堆(操作系统): 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收,分配方式倒是类似于链表。堆则是存放在二级缓存中,生命周期由虚拟机的垃圾回收算法来决定(并不是一旦成为孤儿对象就能被

2014-04-17 23:33:12 651

转载 Difference between new Test() and new Test() { }

Test t2=new Test(); will create the object of Test class.But Test t2=new Test(){ }; will create a object of subclass of test (i.e. anonymous inner class in this case).you can provide imple

2014-04-17 23:31:22 668

转载 android事件分发

dispatchTouchEvent 的事件分发逻辑如下:如果 return true,事件会分发给当前 View 并由 dispatchTouchEvent 方法进行消费,同时事件会停止向下传递;如果 return false,事件分发分为两种情况:如果当前 View 获取的事件直接来自 Activity,则会将事件返回给 Activity 的 onTouchEvent 进行消费;

2014-04-17 23:25:19 915

转载 if里加入内容让其打印出Hello,World

题如下:一个类HelloWorld,如下:publicclass HelloWorld {     publicstatic void main(String... a) {         if(你的代码) {             System.out.print("Hello

2014-04-17 23:21:47 1291

转载 sql

sql对大小写不敏感,但数据库的数据对大小写敏感select sale+0.15 from priceselect (sale+0.15)retail from price   对新列重命名select sale+0.15 retail from price    对新列重命名select -sale retail from priceselect (lowtemp - hig

2014-04-17 16:48:51 1016

转载 如果构造方法中包含super(…)或this(…)调用,那么它们只能作为该构造方法的第一条语句,也就是说连try…catch都不可以有

如果构造方法中包含super(…)或this(…)调用,那么它们只能作为该构造方法的第一条语句,也就是说连try…catch都不可以有

2014-04-17 11:15:45 3523

转载 android View的状态值

focused状态一般是由按键操作引起的;   pressed状态是由触摸消息引起的;                selected则完全是由应用程序主动调用setSelected()进行控制。

2014-04-16 23:35:52 523

转载 Java 并发核心编程

Java 并发核心编程内容涉及:1、关于java并发2、概念3、保护共享数据4、并发集合类5线程6、线程协作及其他 1、关于java并发自从java创建以来就已经支持并发的理念,如线程和锁。这篇指南主要是为帮助java多线程开发人员理解并发的核心概念以及如何应用这些理念。本文的主题是关于具有java语言风格的Thread、synchronized、volat

2014-04-16 23:17:09 1056

转载 runOnUiThread 、 Handler 对比(一)

this.runOnUiThread(new Runnable() {          @Override          public void run() {              try {                  Thread.sleep(1000 * 5);              } catch (InterruptedException e) 

2014-04-16 10:44:19 1160

转载 viewpager实现画廊(一屏多个Fragment)效果

在使用Gallery的时候大家会发现有几个问题(1). 无法控制每次滑动只滑动一页, (2). Gallery默认第一个item居中,无法修改它与Gallery的左间距。ViewPager可以方便的解决上面两个问题,但默认却无法在屏幕上显示多个Fragment。下面介绍如何利用ViewPager及android:clipChildren属性解决这个问题。1、定义xml

2014-04-15 22:59:59 1045

原创 java中到底有没有指针

学过c/c++,然后学java的人往往心中有此纠结,java中到底有没有指针?如果一定要在是或否里选择一个,OK,java中没有指针。那么,java中的引用(reference)和c/c++中的指针(如无特别说明,后文指针均指c/c++中的指针)究竟有着什么样纠葛不清的关系呢?在开始之前先说一下c/c++的引用,它跟java的引用完全不是一个东西,c/c++的引用是同一块内存的

2014-04-15 22:55:22 19026

原创 非原子的double和long

为实现Java内存模型,对非volatile的long或double值的一次写操作是被当做两次独立地写操作来处理的:每次写一半——32位。这会导致一种情况,一个线程看到一个写操作写入的前32位,另一个写操作写入的后32位。对volatile的long和double值的读与写总是原子的。对引用的读与写总是原子的,不管它们是用32位还是64位实现的。一些实现可以方便地将64位l

2014-04-15 22:52:06 906

原创 用StringBuilder(StringBuffer)#append替代字符串”+”会带来性能提升吗

经常看到一些论坛在谈java代码优化的时候讲到要将字符串连接操作”+”换成StringBuilder(或StringBuffer,后面为简单起见,只说StringBuilder)的append操作以提升性能,那么字符串连接使用StringBuilder#append来替代”+”真的会带来性能提升吗?不忙回答,先看几个例子,代码如下:publicc

2014-04-15 22:45:51 1882

原创 Android安全退出应用程序

杀死进程。 这种方法是没有效果的只能杀死当前的Activity无法关闭程序,在1.5的时候有用,谷歌设计的时候规定程序不能自杀android.os.Process.killProcess(android.os.Process.myPid()).终止当前正在运行的Java虚拟机,导致程序终止. 这种方法也是没有效果的,因为Android用的是dalvik虚拟机 System.exit(0);

2014-04-09 11:10:04 900

转载 Android最佳实践之:StrictMode介绍

最新的Android平台中(Android 2.3起),新增加了一个新的类,叫StrictMode(android.os.StrictMode)。这个类可以用来帮助开发者改进他们编写的应用,并且提供了各种的策略,这些策略能随时检查和报告开发者开发应用中存在的问题,比如可以监视那些本不应该在主线程中完成的工作或者其他的一些不规范和不好的代码。  StrictMode有多种不同的策略,每一种策

2014-04-08 22:35:46 658

转载 关于java协程和kilim的一些概念

最近了解了一下基于协程来做异步话的场景。一些基本概念写在这里。     ​    ​多任务调度方面,操作系统怎么搞的?        一种是抢占式,指操系统给每个任务一定的执行时间片,在到达这个时间片后,如果任务仍然没有释放对CPU的占用,则操作系统强制释放,这是目前多数操作系统实现的方式。        一种是协作式,指操作系统按照任务的顺序来分配CPU,每个

2014-04-08 22:30:44 853

转载 Android ListView组件中android:drawSelectorOnTop含义

When set to true, the selector will be drawn over the selected item. Otherwise the selector is drawn behind the selected item. The default value is false.android:drawSelectorOnTop="true"  点击某一条记

2014-04-08 22:29:25 665

转载 Android开发之ListView:setEmptyView的问题

使用listView或者gridView时,当列表为空时,有时需要显示一个特殊的empty view来提示用户,一般情况下,如果你是继承ListActivity,只要   当列表为空时就会自动显示TextView 但是,如果继承Activity的话,想出现上面的效果,就需要手动   ListView list= (ListView)findViewById(

2014-04-08 22:27:51 789

转载 Android 自定义View 一般View定义

在我们编写android程序时一般是自定义以一个类继承自Activity 并且重写onCreate方法: @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.

2014-03-20 22:44:06 553

转载 海量sql语句查询代码优化

具体要注意的: 1.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以在num上设置默认值0,确保表中num列没有null值,然后这样查询: select id from t where num=02.应尽量避免在 where 子句中使用

2014-03-20 22:40:54 667

转载 android:clipChildren属性

一、效果图看到这个图时你可以先想想如果是你,你怎么实现这个效果。马上想到用RelativeLayout?NO,NO,NO,,, 二、实现代码xml version="1.0" encoding="utf-8"?>LinearLayout xmlns:android="http://schemas.android.com/apk/res/android

2014-03-05 18:48:07 1176

转载 Android开发之性能优化(2)

1.      内存优化Android系统对每个软件所能使用的RAM空间进行了限制(如:Nexus one 对每个软件的内存限制是24M),同时Java语言本身比较消耗内存,dalvik虚拟机也要占用一定的内存空间,所以合理使用内存,彰显出一个程序员的素质和技能。1)       了解JIT即时编译(Just-in-time Compilation,JIT),又

2014-03-05 18:13:45 857

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除