StackOverFlow中对这个问题进行了详细的讨论:http://stackoverflow.com/questions/24521017/android-gradle-buildtoolsversion-vs-compilesdkversion [问题的结论]就是: 1.CompileSdkVersion是你SDK的版本号,也就是API Level,例如API-19.API-20.API-21等等. 2.buildeToolVersion是你构建工具的版本,其中包括了打包工具aapt.dx…
在学习Xamarin android的过程中,最先开始学习的还是熟练掌握android的六大布局-LinearLayout .RelativeLayout.TableLayout.FrameLayout.GridLayout.AbsoluteLayout.当你初步了解这六大布局之后,我极力要求大家熟练掌握android中style和theme的区别,这将会在android开发中让你的界面变得更加完美 . 这就像是在web后端程序的开发过程,掌握div+css极为重要.  不说这么多废话了,听起来…
Android之WebViewClient与WebChromeClient的区别 2012-05-05      0个评论       收藏    我要投稿 ANDROID应用开发的时候可能会用到WEBVIEW这个组件,使用过程中可能会接触到WEBVIEWCLIENT与WEBCHROMECLIENT,那么这两个类到底有什么不同呢?WebViewClient主要帮助WebView处理各种通知.请求事件的,比如: onLoadResourceonPageStartonPageFinishonRece…
Android Library和Android APP.Java Library的区别 Android Library在目录结构上与Android App相同,它能包含构建APP所需的一切(如源代码.资源文件.Android Manifest). Android App最终被编译打包成能在Android设备上运行的APK文件,但是Android Library被编译成供其它Android App依赖的Android Archive (AAR)文件. Java Library最终被编译打包成Jav…
[背景] 在Android中,想要设置个按钮的水平对齐,都累死了: [已解决]ADT中已设置TableLayout布局的情况下如何设置按钮居中对齐    所以现在有必要搞清楚,到底gravity和layout_gravity到底有啥区别. 1.参考: Android – gravity and layout_gravity Android中gravity与layout_gravity的区别 中的解释,可以总结为: android:gravity : 表示当前View,即控件,内部的东西的,对齐方…
API level: API level是一个整数,它指的是我们使用的框架(Framework)的版本,也就是我们使用的sdk中的各个平台下的android.jar. 但是这个API level又和Android系统的版本有着对应关系,并且每个系统都会在内部记录它所使用的API level. https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#provisional StackOverFlow中对这个…
还是以自定义的TestButton为例. 我们可以通过重写onTouchEvent方法来处理诸如down move up的消息: public class TestButton extends Button { public TestButton(Context context) { super(context); // TODO Auto-generated constructor stub } public TestButton(Context context, AttributeSet a…
安卓中的 layout_gravity 属性和 gravity属性 有啥区别? LinearLayout有两个非常相似的属性: android:gravity与android:layout_gravity. 他们的区别在于: android:gravity 属性是对该view中内容的限定.比如一个button 上面的text. 你可以设置该text 相对于view的靠左,靠右等位置. android:layout_gravity是用来设置该view相对与父view 的位置.比如一个button…
在Android手机的诞生之初,由于Android系统是开源的,一开始便有众多的OEM厂商对Android手机进行深度定制,于是乎Android手机的皮肤和屏幕大小都变得百花齐放,这可苦逼了我们这群开发者,因为我们被要求要注意写出一个好的Android软件,写一次代码就能适应大小不同的屏幕.这就好比,你做了一套衣服,要让不同身材的人都穿得合身,类似于生活中的道理,我们这套衣服肯定不能用没有弹性的布料,所以我们要像生活中那种无尺码,有弹性的衣服学习,在代码里面尽量让界面能够自动适应屏幕的大小,幸好…
初装Android studio的童鞋可能或多或少会存在一些问题,比如出现Error:compileSdkVersion android-x requires compiling with JDK 7的问题,虽然自己已经下载了jdk7或者jdk8但还是提示这样的错误,这是为什么呢?原来我们是我们的 jdk的路径没有设置好或者我们的 jdk默认设置成jdk6. 所以,我们要让android studio正常工作,就要重置我们的 jdk 的路径,所需要的步骤如下图所示.(jdk7默认的下载路径为/L…
在android中,经常用到的定时器主要有以下几种实现:一.采用Handler与线程的sleep(long )方法二.采用Handler的postDelayed(Runnable, long) 方法三.采用Handler与timer及TimerTask结合的方法.下面逐一介绍:一.采用Handle与线程的sleep(long )方法Handler主要用来处理接受到的消息.这只是最主要的方法,当然Handler里还有其他的方法供实现,有兴趣的可以去查API,这里不过多解释.1.定义一个Handle…
setBackgroundDrawable和setBackgroundResource的区别很多网友不知道View类提供的setBackgroundDrawable和setBackgroundResource的区别是什么,同时Android View类很多子类比如TextView.ImageView中都有这些方法,同时还有一些类似setImageDrawable.setImageBitmap和setImageResource()这些方法的不同之处. 一.setBackgroundXXX的用处,设…
1.apply没有返回值而commit返回boolean表明修改是否提交成功2.apply是将修改数据原子提交到内存, 而后异步真正提交到硬件磁盘, 而commit是同步的提交到硬件磁盘3.apply方法不会提示任何失败的提示 apply的效率高一些,如果没有必要确认是否提交成功建议使用apply. The SharedPreferences class provides a general framework that allows you to save and retrieve persi…
android:padding和android:layout_margin的区别:padding是站在父view的角度描述问题,它规定它里面的内容必须与这个父view边界的距离. margin则是站在自己的角度描述问题,规定自己和其他(上下左右)的 view之间的距离,如果同一级只有一个view,那么它的效果基本上就和padding一样了.…
版权声明:本文出自汪磊的博客,转载请务必注明出处. 一.概述 Android开发的时候,我们时长遇到传递对象的需求,但是我们无法将对象的引用传给Activity或者Fragment,我们需要将这些对象放到一个Intent或者Bundle里面,然后再传递,这时候就用到了序列化,所谓序列化就是把Java对象转换为字节序列并存储至一个储存媒介的过程,反序列化就是把字节序列恢复为Java对象的过程.但是我们要知道序列化与反序列化仅处理Java变量而不处理方法,仅对数据进行处理. 二.序列化两种方式 An…
文章转自http://blog.csdn.net/shakespeare001/article/details/784346,给出了很详细的解释. 1.首先来看看Android:layout_gravity和android:gravity的使用区别. android:gravity: 这个是针对控件里的元素来说的,用来控制元素在该控件里的显示位置.例如,在一个Button按钮控件中设置如下两个属性, android:gravity="left"和android:text="提…
大家都知道建立一个Android项目后会产生assets与res的两个文件夹,理论上他们都是存放资源的文件夹,那么他们到底有什么区别呢? 1.assets:不会在R.java文件下生成相应的标记,存放到这里的资源在运行打包的时候都会打入程序安装包中 2.res:会在R.java文件下生成标记,这里的资源会在运行打包操作的时候判断哪些被使用到了,没有被使用到的文件资源是不会打包到安装包中的. 在res文件夹下其实还可以定义一下目录: res/anim:这里存放的是动画资源. res/xml:可以在…
Bundle的作用,以及和Intent的区别: 一.Bundle: A mapping from String values to various Parcelable types 键值对的集合 类继承关系: java.lang.Object android.os.Bundle Bundle类是一个final类: public final class Bundle extends Objectimplements Parcelable Cloneable 作用:可以用作是两个Activity间的…
目录: (3)Android 官方网站 对 MediaPlayer的介绍 正文:  Android 官方网站 对 MediaPlayer的介绍         MediaPlayer      public class MediaPlayer       extends Object implements VolumeAutomation, AudioRouting           MediaPlayer类被用来控制音/视频文件和流的播放.可以在VideoView中找到有关如何使用此类中的方…
每个 Android 应用进程在创建时,会同时创建一个线程,我们称之为主线程,负责更新 UI 界面以及和处理用户之间的交互,因此,在 Android 中,我们又称之为 UI 线程.一个进程中 UI 线程只有一个,为了不造成界面卡顿.提高用户体验,我们势必要将一些耗时操作交由子线程来执行. 使用子线程的方式主要分两种: 直接使用 Thread 和 Runnable 等创建子并使用线程 使用线程池创建并使用子线程 线程池是什么 线程池是指在初始化一个多线程应用程序过程中创建一个线程集合,然后在需要执…
Android项目开发中,是不是常看到android-support-v4.jar.appcompat_v7.jar等的jar包? 至于为什么要添加这些包?添加有什么用?添加到哪里?相信很多人没过多关注,或者只知其然,而不知其所以然.下面我们就来学习一下~~ 一.v4/ v7/ v13的作用与区别 1.  v4/ v7/ v13是什么? 本质上就是android提供的三个java library. 2.  android为什么要提供这些库? google提供了Android Support Li…
UUID含义是通用唯一识别码 (Universally Unique Identifier),这 是一个软件建构的标准,也是被开源软件基金会 (Open Software Foundation, OSF) 的组织在分布式计算环境 (Distributed Computing Environment, DCE) 领域的一部份.   UUID 的目的,是让分布式系统中的所有元素,都能有唯一的辨识资讯,而不需要透过中央控制端来做辨识资讯的指定.如此一来,每个人都可以建立不与其它人冲突的 UUID.在这…
一.常识性区别 二.导航方式 iOS:Tab放在页面底部,不能通过滑动来切换,只能点击.也有放在上面的,也不能滑动,但有些Tab本身可以滑动,比如天猫的.还有新闻类的应用. Android:一般放在页面顶端,可以通过滑动页面来切换Tab,当然Tab可以点击切换,Tab多的话,Tab本身也可以滑动.比如豌豆荚,百度贴吧,QQ.总之,Android啥都可以有.(其他导航方式,见上一篇) 三.单条item的操作 iOS:单条item的操作有两种,点击和滑动,点击一般进入一个新的页面,滑动会出现对这条i…
Android中的对话框有两种:PopupWindow和AlertDialog.它们都可以实现弹窗功能,但是他们之间有一些差别,下面总结了一点. (1)Popupwindow在显示之前一定要设置宽高,Dialog无此限制. (2)Popupwindow默认不会响应物理键盘的back,除非显示设置了popup.setFocusable(true);而在点击back的时候,Dialog会消失. (3)Popupwindow不会给页面其他的部分添加蒙层,而Dialog会. (4)Popupwindow…
最近发现很多基础有点生疏了,特地写一点博客来巩固一下.今天主要来谈谈接口和抽象类的区别,我们在项目的很多地方都会用到接口或者抽象类,但是它们之间的一些区别和相同点不知道大家有没有注意到,还有就是,什么时候用抽象类,什么时候用接口比较好呢,今天,就好好的总结一下. 抽象类: 1:有abstract修饰的class,绝对就是抽象类. 2:抽象类中可以有抽象方法,也可以没有抽象方法,但是有抽象方法的class,就一定会是抽象类. 3:抽象类是不能创建实例对象的. 4:如果有子类继承这个抽象类,则必须要…
1). Thread:Thread 是程序执行的最小单元,它是分配CPU的基本单位.可以用 Thread 来执行一些异步的操作. 2). Service:Service 是android的一种机制,当它运行的时候如果是Local Service,那么对应的 Service 是运行在主进程的 main 线程上的.如:onCreate,onStart 这些函数在被系统调用的时候都是在主进程的 main 线程上运行的.如果是Remote Service,那么对应的 Service 则是运行在独立进程的…
Android中实现view的更新有两组方法,一组是invalidate,另一组是postInvalidate,其中前者是在UI线程自身中使用,而后者在非UI线程中使用. Android提供了Invalidate方法实现界面刷新,但是Invalidate不能直接在线程中调用,因为他是违背了单线程模型:Android UI操作并不是线程安全的,并且这些操作必须在UI线程中调用. Android程序中可以使用的界面刷新方法有两种,分别是利用Handler和利用postInvalidate()来实现在…
Android中实现view的更新有两组方法,一组是invalidate,另一组是postInvalidate,其中前者是在UI线程自身中使用,而后者在非UI线程中使用. Android提供了Invalidate方法实现界面刷新,但是Invalidate不能直接在线程中调用,因为他是违背了单线程模型:Android UI操作并不是线程安全的,并且这些操作必须在UI线程中调用. Android程序中可以使用的界面刷新方法有两种,分别是利用Handler和利用postInvalidate()来实现在…
1.  删除:android是长按,ios为滑动/或者进入编辑模式 2.  android:应用内返回键,保证用户停留在应用程序中:硬件返回键可以让用户退出应用程序 3.  剪切/粘贴/选择等文本操作:ios长按,出现轻量悬浮式菜单,选择select.select all.paste进行操作:android长按触发文本模式 4.  Ios的tab栏,一栏最多显示5个,位于屏幕底部,超过的第5个显示more,当用户选择某个tab,高亮状态,不能滑动切换,只能点击:android的tab栏一般在页面…
java程序在jvm和dvm的执行过程: #jvm和dvm的区别(Dalvil VM) 谷歌刚开发的安卓系统用的就是JVM,JVM版权属于sun公司也就是Oracle公司,后来用的是DVM,由于版权问题.DVM是基于openjdk做的2次开发,DVM解决了JVM的效率问题,jvm的运行效率会低. jvm里面class代码必须要在jvm里面进行解释后在底层操作系统里面执行,真正执行是底层操作系统执行,由于必须在jvm里面解释所以效率要低. dvm会先把class文件转换为dex文件之后再去解释执行…