Android开发中getleft和getX,event.getx getrawxX的区别

2101人阅读
Android实战开发(25)
转载请注明出处:
& & &好久没写博客了,最近工作确实挺忙的,刚刚结束了一个TV项目的开发,对于第一次开发TV项目的我表示:还是手机开发好啊。本来以为TV项目开发完了可以休息几天但是我还是想多了,哈哈,马上就要进行新项目的开发,唉,说多了都是眼泪啊,废话不多说咱们进入正题,今天和大家一起讨论的是android中的一些距离,可能在日常的开发中我们会经常遇到,但是有时候这几个概念又特别容易弄混,所以今天我就总结了getX,getRawX,getWidth等的区别。希望对大家有帮助,如有谬误,欢迎批评指正,如有疑问欢迎留言&
一、getX、getRawX、getTranslationX等的图形表示
首先我们来看看这几个方法在图形上的表示,然后再用代码的形式进行验证我们来看下这几个方法的几何图形的表示:
上面只是用图片表示了这几个距离的意义,下面我们用文字来描述一下,然后通过案例来验证一下大家就彻底明白这几个距离的意义了。
二、getX、getRawX、getTranslationX意义的文字描述event.getX():表示的是触摸的点距离自身左边界的距离&
event.getY():表示的是触摸的点距离自身上边界的距离
event.getRawX:表示的是触摸点距离屏幕左边界的距离
event.getRawY:表示的是触摸点距离屏幕上边界的距离&
View.getWidth():表示的是当前控件的宽度,即getRight()-getLeft()View.getHeight():表示的是当前控件的高度,即getBottom()-getTop()&
View.getTop():子View的顶部到父View顶部的距离
View.getRight():子View的右边界到父View的左边界的距离&
View.getBottom():子View的底部到父View的顶部的距离&
View.getLeft():子View的左边界到父View的左边界的距离&
View.getTranslationX()计算的是该View在X轴的偏移量。初始值为0,向左偏移值为负,向右偏移值为正。&
View.getTranslationY()计算的是该View在Y轴的偏移量。初始值为0,向上偏移为负,向下偏移为证。&
细心的同学会发下上面多了个getTranslationX,这个计算的是该View在X轴的偏移量。初始值为0,向左偏移值为负,向右偏移值为正。由于用用图形不好表示,在后面会有一个案例来说明它的意义。
三、案例理解getX、getRawX、getTranslationX的用法接下来我们通过两个案例来理解getX、getRawX、getTranslationX的意义,首先来看下运行效果图:
然后我来解释下这个布局首先最外面那个是手机屏幕,然后里面的白色矩形是里面黑色矩形的父View,中间的那个小的白点是我们点击的一个点,它处于屏幕的正中央,其中屏幕的分辨率是480*320,我们都知道在这种分辨率下1dp=1px,然后白色矩形的宽和高都是300dp,中间黑色矩形的宽和高都是150dp,中间黑色区域是rlCenter,中间的小白点是ivDot大家可以算一下rlCenter.getWidth,rlCenter.getX,rlCenter.getRawX以及rlCenter.getTop,rlCenter.getBottom等,然后和后面打印的日志对比下,首先来看下代码:
package com.example.
import android.app.A
import android.os.B
import android.util.L
import android.view.MotionE
import android.view.V
import android.view.View.OnTouchL
import android.view.W
import android.view.WindowM
import android.widget.RelativeL
public class MainActivity extends Activity {
private boolean isFocus=
private RelativeLayout rlC
int screenW
private int screenH
private float x,y;
private float rawX,rawY;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN
,WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_main);
rlCenter=(RelativeLayout) findViewById(R.id.rl_center);
screenWidth = ScreenUtils.getScreenWidth(MainActivity.this);
screenHeight = ScreenUtils.getScreenHeight(MainActivity.this);
Log.i(&MainActivity&,&screenWidth:&+screenWidth);
Log.i(&MainActivity&,&screenHeight:&+screenHeight);
rlCenter.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
int action = event.getAction();
switch (action) {
case MotionEvent.ACTION_DOWN:
x=event.getX();
y=event.getY();
rawX=event.getRawX();
rawY=event.getRawY();
Log.i(&MainActivity&, &event.getX()=&+x+&,&+&event.getY()=&+y+&,&+&event.getRawX()=&+rawX+&event.getRawY()=&+rawY);
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if(hasFocus&&!isFocus){
Log.i(&MainActivity&, &rlCenter.getWidth=&+rlCenter.getWidth()+&,&+&rlCenter.getHeight=&+rlCenter.getHeight());
Log.i(&MainActivity&, &rlCenter.getLeft=&+rlCenter.getLeft()+&,&+&rlCenter.getRight=&+rlCenter.getRight()+&,&+&rlCenter.getTop=&+rlCenter.getTop()+&,&+&rlCenter.getBottom=&+rlCenter.getBottom());
然后看下打印的结果:
与你计算的一样吗?其中大家看到的可能会有0.0几的误差因为中间的那个小白点是2dp,可能点击的时候并不是刚好是正中间但是并不影响我们的测试。好了到这里相信大家对这几个概念应该有了比较清楚的认识。接着我们来看下getTranslationX,上面我们提到它计算的是该View在X轴的偏移量。初始值为0,向左偏移值为负,向右偏移值为正。怎么来验证它呢?用属性动画及可以做到,首先我们来看下代码:
package com.example.test2;
import android.animation.ObjectA
import android.app.A
import android.os.B
import android.util.L
import android.view.V
import android.view.View.OnClickL
import android.widget.ImageV
public class MainActivity extends Activity{
private ImageView ivT
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ivTest=(ImageView) findViewById(R.id.iv_test);
ivTest.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Log.i(&MainActivity&,&ivTest.getTranslationX()=&+ivTest.getTranslationX()+&,&+&ivTest.getTranslationY()=&+ivTest.getTranslationY());
ObjectAnimator.ofFloat(ivTest,&translationX&,100f).setDuration(1000).start();
来看看它的打印结果:
看到了吧,刚开始打印的getTranslationX为0,然后我们执行属性动画这个属性动画就是让这个View向右移动100px之后再打印发现它的值变成了100,这也验证了我们的说法。
好了这一篇博客就到这里了相信大家对这几个概念应该很清楚了,
如果在阅读过程中发现错误,谢谢指正。
转载请注明出处:
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:87692次
积分:1643
积分:1643
排名:千里之外
原创:45篇
评论:190条
感兴趣的朋友可以加入我的QQ群,一起讨论学习,共同进步。
欢迎大家加入,讨论问题,里面有好多资源哦!!
阅读:13888
阅读:10821
文章:14篇
阅读:26098
(1)(3)(1)(2)(1)(2)(5)(4)(4)(4)(11)(1)(1)(2)(4)getY() rawX,但二者又有区别 getX() : 是相对当前控件(View)的 getRawX() : 是获取相对显示屏幕左上角的坐标 演示示例代码 Java代码: public class MainActivity extends Activity implements OnTouchListener { private B private int x = 0,,这篇文章主要先容了开拓中MotionEvent坐标获取要领,rawY : 别离获取的相对显示屏幕左上角的坐标 getRawX(),分享给各人供各人参考,不管activity是否有titleBar或是否全屏幕); getY()。
MotionEvent event) {int eventaction = event.getAction();switch (eventaction) {case MotionEvent.ACTION_DOWN:case MotionEvent.ACTION_MOVE:x = (int) event.getX();y = (int) event.getY();rawX = (int) event.getRawX();rawY = (int) event.getRawY();Log.e("homer"。
而getRawX()是暗示相对付屏幕左上角的x坐标值(留意:这个屏幕左上角是手机屏幕左上角, getRawY() 总结: getX() 是暗示Widget相对付自身左上角的x坐标,详细如下: Android MotionEvent中getX()与getRawX()都是获取屏幕坐标(横),getRawY()一样的原理 更多关于Android相关内容感乐趣的读者可查察本站专题:《Android开拓入门与进阶教程》、《Android手机信息操纵能力汇总》、《Android资源操纵能力汇总》及《Android根基组件用法总结》 , y = 0; private int rawX = 0, rawY = 0; @Override protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);btn = (Button) findViewById(R.id.btn);btn.setOnTouchListener(this); } @Override public boolean onTouch(View view,网狐经典漏洞, "x = " + x + "; y = " + y + "; rawX = " + rawX + "; rawY = " + rawY);case MotionEvent.ACTION_UP:} }} xml 代码: RelativeLayout xmlns:android="/apk/res/android" xmlns:tools="/tools" android:layout_width="fill_parent" android:layout_height="fill_parent" tools:context=".MainActivity" TextViewandroid:id="@+id/txt"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerHorizontal="true"android:layout_centerVertical="true"android:text="@string/hello_world" / Buttonandroid:id="@+id/btn"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@id/txt"android:layout_centerInParent="true"android:text="button me" //RelativeLayout 运行功效: 点击屏幕中间的Button。
团结实例形式阐明白MotionEvent获取坐标的相关函数利用要领与相存眷意事项。
获取的坐标信息: 功效说明: x,y : 别离获取的相对Button控件的坐标 getX(),需要的伴侣可以参考下 本文实例报告了Android开拓中MotionEvent坐标获取要领,网狐游戏源码,。
与本文相关的文章> Android MotionEvent 座标获取
Android MotionEvent 座标获取
xhexhe & &
发布时间: & &
浏览:1 & &
回复:0 & &
悬赏:0.0希赛币
Android MotionEvent 坐标获取  Android MotionEvent中getX()与getRawX()都是获取屏幕坐标(横),但二者又有区别  getX() & & & & & : & 是获取相对当前控件(View)的坐标  getRawX() & : & 是获取相对显示屏幕左上角的坐标  演示示例代码  Java代码:  public class MainActivity extends Activity implements OnTouchListener {
private int x = 0, y = 0;
private int rawX = 0, rawY = 0;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn = (Button) findViewById(R.id.btn);
btn.setOnTouchListener(this);
public boolean onTouch(View view, MotionEvent event) {
int eventaction = event.getAction();
switch (eventaction) {
case MotionEvent.ACTION_DOWN:
case MotionEvent.ACTION_MOVE:
x = (int) event.getX();
y = (int) event.getY();
rawX = (int) event.getRawX();
rawY = (int) event.getRawY();
Log.e(&homer&, &x = & + x + &; y = & + y + &; rawX = & + rawX + &; rawY = & + rawY);
case MotionEvent.ACTION_UP:
}  xml 代码:  &RelativeLayout xmlns:android=&;
xmlns:tools=&;
android:layout_width=&fill_parent&
android:layout_height=&fill_parent&
tools:context=&.MainActivity& &
android:id=&@+id/txt&
android:layout_width=&wrap_content&
android:layout_height=&wrap_content&
android:layout_centerHorizontal=&true&
android:layout_centerVertical=&true&
android:text=&@string/hello_world& /&
android:id=&@+id/btn&
android:layout_width=&wrap_content&
android:layout_height=&wrap_content&
android:layout_below=&@id/txt&
android:layout_centerInParent=&true&
android:text=&button me& /&
&/RelativeLayout&  运行结果:      点击屏幕中间的Button,获取的坐标信息:    结果说明:  x,y &: &分别获取的相对Button控件的坐标 getX(), getY()  rawX,rawY &: 分别获取的相对显示屏幕左上角的坐标 getRawX(), getRawY()  总结:&  getX() 是表示Widget相对于自身左上角的x坐标,而getRawX()是表示相对于屏幕左上角的x坐标值(注意:这个屏幕左上角是手机屏幕左上角,不管activity是否有titleBar或是否全屏幕); getY(),getRawY()一样的道理  参考推荐:  Android 获取屏幕尺寸与密度  Android的计量单位px,in,mm,pt,dp,dip,sp  Bitmap 之 getPixels() 的 stride
本问题标题:
本问题地址:
温馨提示:本问题已经关闭,不能解答。
暂无合适的专家
&&&&&&&&&&&&&&&
希赛网 版权所有 & &&软件开发网--android技术专题
测试代码:
public class Res extends Activity implements View.OnTouchListener {
Button btn =
int x = 0;
int y = 0;
int rawx = 0;
int rawy = 0;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(saved...
1、获取资源: &Resources res = getBaseContext().getResources();
         Drawable draw=res.getDrawable(R.drawable.icon);
  2、获得数组: & String[] ary = getResources().getStringArray(R.array.ary);
  3、自动提示框:
  String[] arrays=new String[]...
Android中的Looper类,是用来封装消息循环和消息队列的一个类,用于在android线程中进行消息处理。handler其实可以看做是一个工具类,用来向消息队列中插入消息的。
&&& (1) Looper类用来为一个线程开启一个消息循环。&&&& 默认情况下android中新诞生的线程是没有开启消息循环的...
在app开发的各个阶段中要考虑RAM的限制问题, 包括在设计阶段(正式开发之前). 使用下面的不同的方法可以达到很好的效果. 当您在设计和开发Android应用时用下面的方法可以使内存运用最高效.
使用保守的Service
如果你的应用需要使用 service 在后台执行业务功能, 除非是一直在进行活动的工作(比如每隔几秒向服务...
  现在有这样的需求,防止自己的app被其他的应用程序(比如qq手机管家)杀死,该怎么实现呢。我们知道app都是运行在进程中的,android是怎样管理这些进程的呢。要想app不被杀死,只要做到进程不被结束就解决了问题。但是不幸的是,第三方app很容易利用系统的api(比如killBackProgress())轻易杀死其他进程。那该怎么...
在实际工作中,事先写好的布局文件往往不能满足我们的需求,有时会根据情况在代码中自定义控件,这就需要用到LayoutInflater。
LayoutInflater在Android中是&扩展&的意思,作用类似于findViewById(),不同的是LayoutInflater是用来获得布局文件对象的,而findViewById()是用来获得具体控件的。LayoutInfla...
Service是在一段不定的时间运行在后台,不和用户交互应用组件。每个Service必须在manifest中 通过&service&来声明。可以通过contect.startservice和contect.bindserverice来启动。
Service和其他的应用组件一样,运行在进程的主线程中。这就是说如果service需要很多耗时或者阻塞的操作,需要在其子线程中实现...
Android中的服务和windows中服务是类似的东西,服务一般没有用户操作界面,它运行于系统中不容易被用户发觉,可以使用它开发如监控之类的程序。服务的开发比较简单,如下:
第一步,继承Service类
&&&&&& publicclass SMSService extends Service{}
第二步,在AndroidMani...
在android里,有4种activity的启动模式,1 standard (默认) 2 singleTop 3 singleTask 4 singleInstance
它们主要有如下不同:
1. 如何决定所属task
&standard&和&singleTop&的activity的目标task,和收到的Intent的发送者在同一个task内,除非intent包括参数FLAG_ACTIVITY_NEW_...
通过WindowManager的addView()方法,并设置WindowManager.LayoutParams的相关属性,就可以往WindowManager中加入所需要的View,而根据WindowManager.LayoutParams属性不同,也就能实现不同的效果。比如创建系统顶级窗口,实现悬浮窗口效果。如果需要将View从WindowManager中移除,只需要调用removeView()即可。
GetBroadcast.registerReceiver(getApplicationContext());//注册广播,用于监听应用是否安装完成
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(new File(fileURL)),
&application/vnd.android.package-archive&);
startActivity(intent);
android view setVisibility():
有三个参数:Parameters:visibility One of VISIBLE, INVISIBLE, or GONE,想对应的三个常量值:0、4、8
VISIBLE:0 &意思是可见的
INVISIBILITY:4 意思是不可见的,但还占着原来的空间
GONE:8 &意思是不可见的,不占用原来的布局空间
1、方法一(如果输入法在窗口上已经显示,则隐藏,反之则显示)
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);
2、方法二(view为接受软键盘输入的视图,SHOW_FORCED表示强制显示...
Android 系统里定义了各种各样的广播,如电池的使用状态,电话的接收和短信的接收,开机启动都会产生一个广播。当然用户也可以自定义自己的广播。
既然说到广播,那么必定有一个广播发送者,以及广播接收器。系统广播的发送者为系统,自定义广播当然是用户定义的了。
我们可以定义一个广播接收器,用来接收我们感...
一、ART模式是什么?
  ART模式英文全称为:Android runtime,谷歌Android 4.4系统新增的一种应用运行模式,与传统的Dalvik模式不同,ART模式可以实现更为流畅的安卓系统体验,对于大家来说,只要明白ART模式可让系统体验更加流畅,不过只有在安卓4.4以上系统中采用此功能。
  如果你...
一.把android.permission.INTERNET添加到AndroidMainfest.xml配置文件中,使整个程序有访问网络的权限。
&uses-permission android:name=&android.permission.INTERNET&/&
二.创建一个下载连接并返回InputStream对象。InputStream对象就是下载的文件的字节流
Intent i = getBaseContext().getPackageManager()
.getLaunchIntentForPackage(getBaseContext().getPackageName());
//i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(i);
国际移动用户识别码(IMSI:International Mobile SubscriberIdentification Number)是区别移动用户的标志,储存在SIM卡中,可用于区别移动用户的有效信息。其总长度不超过15位,同样使用0~9的数字。其中MCC是移动用户所属国家代号,占3位数字,中国的MCC规定为460;MNC是移动网号码,最多由两位数字组成,用于识别移动...
在java中可有两种方式实现多线程,一种是继承Thread类,一种是实现Runnable接口;Thread类是在java.lang包中定义的。一个类只要继承了Thread类同时覆写了本类中的run()方法就可以实现多线程操作了,但是一个类只能继承一个父类,这是此方法的局限,下面看例子:
package org.thread.
class MyThread extend...
半透明&Button android:background=&#e0000000& ... /&
透明&Button android:background=&#& ... /&
颜色和不透明度 (alpha) 值以十六进制表示法表示。任何一种颜色的值范围都是 0 到 255(00 到 ff)。对于 alpha,00 表示完全透明,ff 表示完全不透明。表达式顺序是&...
1)WindowManager继承自ViewManager这个接口,这个接口主要有以下的实现子接口:
* addView(); &
* updateViewLayout();&
* removeView();
在WindowManager中,addView方法表示的是将主窗口中的顶级view(也就是DecorView)添加到WindowManager中,并建立会话。
WindowManager主要用来管理...
boolean isMyLauncherDefault() {
final IntentFilter filter = new IntentFilter(Intent.ACTION_MAIN);
filter.addCategory(Intent.CATEGORY_HOME);
List filters = new ArrayList();
filters.add(filter);
final String myPackageName = getPackageName();
Android开发怎么判断应用或者服务已经启动
1、判断应用已经启动
ActivityManager am = (ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE);
List list = am.getRunningTasks(100);
for (RunningTaskInfo info : list) {
& & if (info.topActivity.getPackageName().eq...
obtainmessage()是从消息池中拿来一个msg 不需要另开辟空间
new需要重新申请,效率低,obtianmessage可以循环利用;
//use Handler.obtainMessage(),instead of msg = new Message(); &
//because if there is already an Message object,that not be used by &&
//any one ,the syste...
& & 前段时间在开发一款应用,里面涉及到一个来电拦截的功能,于是乎就开始了对于来电如何拦截进行了探索,最后总结出了实现来电拦截的两种方法,并且经过实际的真机验证,在对比两种可以实现的方法,我们找出了其中较优的一种实现。
& & 对于来电如何拦截,我们想象一下要拦截来电,首先我们的...
public class
TelephonyManager
extends Object
java.lang.Object
& & &android.telephony.TelephonyManager
TelephonyManager提供了取得手机基本服务的信息的一种方式。因此应用程序可以使用TelephonyManager来探测手机基本服务的情况。
应用程序也可以注册listener来监听电话状...
TelephonyManager类主要提供了一系列用于访问与手机通讯相关的状态和信息的get方法。其中包括手机SIM的状态和信息、电信网络的状态及手机用户的信息。
在应用程序中可以使用这些get方法获取相关数据。
TelephonyManager类的对象可以通过Context.getSystemService(Context.TELEPHONY_SERVICE)方法来获得,
Dialog是任何系统都必须有的一个控件,作为辅助窗口,用于显示一些消息,或请求用户采取一引起操作等。
在Android中也不例外,基本使用可能参看文档。
使用时的注意事项
1. BACK键能取消掉对话框(dismiss),但是却不会触发其onOkey和onCancel回调接口,所以如果你的对话框会改某些状态...
AsyncTask和Handler对比
AsyncTask实现的原理,和适用的优缺点
AsyncTask,是android提供的轻量级的异步类,可以直接继承AsyncTask,在类中实现异步操作,并提供接口反馈当前异步执行的程度(可以通过接口实现UI进度更新),最后反馈执行的结果给UI主线程.
使用的优点: 简单,快捷 ...
建立android工程等工作都略去,Google一下就可以了。&
下面来介绍主要的Activity&
ProgressBarDemo.java&
package com.rjkfw. &
import android.app.A &
import android.app.ProgressD &
import a...
&?xml version=&1.0& encoding=&utf-8&?& &
&LinearLayout xmlns:android=&/apk/res/android& &
& & android:orientation=&vertical& android:layout_width=&fill_parent& &
$ adb shell
$ cd /data/data/com.android.providers.media/databases & & & //进入media数据库目录
$ sqlite3 settings.db & & & & & & & & & & & & & & & & & & & &nb...
一般的,Android 应用程序有两种安装方法:
1. 将应用程序的apk文件push到手机中,用如下命令:
& &adb push xxxx.apk /system/app.
2. 用adb install xxxx.apk进行安装
3. 二者的比较以及注意事项:
& 1) 用第一种方式的弊...
一、Tablelayout简介
& & & &Tablelayout类以行和列的形式对控件进行管理,每一行为一个TableRow对象,或一个View控件。
& & & & &当为TableRow对象时,可在TableRow下添加子控件,默认情况下,每个子控件占据一列。
& & & & &当为V...
很多的Android软件都需要用户登录登录功能,在开发的时候像这些密码都是保存在SharedPreferences中,这些密码保存在/data/data/包名/shared_prefs下,保存在一个XML文件中,如下:
可以用FileBrower查看
开始说道正题,Android MD5加密算法虽然现在有些人已经将其解开了,但是它的加密机制依然很强大...
private boolean isServiceRunning() { &
& & ActivityManager manager = (ActivityManager) getSystemService(ACTIVITY_SERVICE); &
& & for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) { &
& & & & if (&quo...
Foreground Process
当发生以下情况时处于前台进程:
正处于activity Resume()状态
正处于与服务交互的状态
正处于服务在前台运行的状态,也就是startForeground()被调用
Service 生命周期函数正在被执行
BroadcastReceiver正在执行onR...
Android是基于Linux内核的软件平台和操作系统,是由2007年由Google开发而成,希望借助建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统。
Android尽量不去中止一个进程,但是当内存不足的时候它必须中止一些老的线程。为了决定哪些进程保留哪些进程中止,Android给这些进程一...
类的概述:接收屏幕开关、系统关闭对话框事件,启动、关闭输入法service,弹出选择输入法的对话框等等。
(1)SimpleStringSplitter
TextUtils.SimpleStringSplitter mStringColonSplitter = new TextUtils.SimpleStringSplitter(':');
mStringColonSplitter.setString(enabledStr);//Sets ...
& Service是在一段不定的时间运行在后台,不和用户交互应用组件。每个Service必须在manifest中 通过&service&来声明。可以通过contect.startservice和contect.bindserverice来启动。
& & Service和其他的应用组件一样,运行在进程的主线程中。这就是说如果service需要很多耗时或者阻塞的操作,...
Activity.finish()
Call this when your activity is done and should be closed.&
在你的activity动作完成的时候,或者Activity需要关闭的时候,调用此方法。
当你调用此方法的时候,系统只是将最上面的Activity移出了栈,并没有及时的调用onDestory()方法,其占用的资源也没有被及时释放。因为移出...
在android中,经常用到的定时器主要有以下几种实现:
一、采用Handler与线程的sleep(long )方法
二、采用Handler的postDelayed(Runnable, long) 方法
三、采用Handler与timer及TimerTask结合的方法。
下面逐一介绍:
一、采用Handle与线程的sleep(long )方法
Handler主要用来处理接受到的消息。...
& * 测试ConnectivityManager&
& * ConnectivityManager主要管理和网络连接相关的操作&
& * 相关的TelephonyManager则管理和手机、运营商等的相关信息;WifiManager则管理和wifi相关的信息。&
& * 想访问网络状态,首先得添加权限&uses-permission and...
使用SOAP协议的前提是你必须下载一个KSOAP包:ksoap2-android-assembly-2.5.2-jar-with-dependencies.jar包
然后操作的第一步:
实例化SoapObject对象:
1.serviceNameSpace 命令空间
2.methodName 调用方法
SoapObject request=new SoapOb...
1.文件存储数据使用了Java中的IO操作来进行文件的保存和读取,只不过Android在Context类中封装好了输入流和输出流的获取方法。
创建的存储文件保存在/data/data//files文件夹下。
保存文件内容:通过Context.openFileOutput获取输出流,参数分别为文件名和存储模式。
Intent用于启动Activity,Service, 以及BroadcastReceiver三种组件, 同时还是组件之间通信的重要媒介。
使用Intent启动组件的优势
1, Intent为组件的启动提供了一致的编程模型。无论想要启动的组件是Activity,Service, 还是BroadcastReceiver,都可以使用Intent封装启动的意图。
2, 在某些时候, 应...
在Davilk中,给程序分配的内存是根据机型厂商的不同而不同(现在大部分为32MB)
在VM内部会将内存分为:java使用的内存,Native使用的内存,他们之间不能共享,当某一方面不足
的时候必须向VM申请,而不能直接使用另外一个的内存。
android GC
if you wanna a concrete ...
方法一:利用USB连接线进行连接
1. 利用lsusb查看USB连接设备的idVendor
& &可以查到,ASUS 的TF101的idVendor是:0b05
2. 在ubuntu下,第一次连入实体机进行调试会发现ubuntu无法识别到android手机。
& &需要进行的设置是:
1. Log in as root and create this fil...
如果使用DDMS确实发现了我们的程序中存在内存泄漏,那又如何定位到具体出现问题的代码片段,最终找到问题所在呢?如果从头到尾的分析代码逻辑,那肯定会把人逼疯,特别是在维护别人写的代码的时候。这里介绍一个极好的内存分析工具 -- Memory Analyzer Tool(MAT)。
& MAT是一个Eclipse插件,同时也有单独的RCP客...
有时候程序运行出现死锁或者信号量卡死是很纠结的问题,单看代码很难分析定位问题,这时候可以借助DDMS来查看threads的运行情况,一目了然。
手机连接上USB,确保adb连通,然后启动Eclipse里的DDMS,这时候应该手机就正常连接上了
只要连接上了就可以查看某个进程里的所有线程的活动了; 下面具体解释下Threads标...
ViewHolder不是Android的开发API,而是一种设计方法,就是设计个静态类,缓存一下,省得Listview更新的时候,还要重新操作。&
& & public View getView(int pos, View convertView, ViewGroup parent){&
& & & & & & ViewH&
如果想公开自己的数据,那么可有两种办法:
1.创建自己的ContentProvider,需要继承ContentProvider类
2.如果你的数据和已存在的ContentProvider数据结构一致,可以将数据写到已存在的ContentProvider中
& 当然前提是获取写该ContentProvider的权限.比如把OA中的成员通讯信息加入到系统的联系人ContentProv...
在Android中,我们的应用有的时候需要对外提供数据接口,可以有如下几种方法:1)AIDL 2)Broadcast 3)ContentProvider。
使用AIDL需要我们编写AIDL接口以及实现,而且对方也要有相应的接口描述,有点麻烦;使用Broadcast,我们不需要任何接口描述,只要协议文档就可以了,但是有点不好就是,这种方式不直接而且是异...
ContentProvider-----数据提供给第三方应用程序使用时使用
因为在Android系统里面,数据库是私有的。一般情况下外部应用程序是没有权限读取其他应用程序的数据。如果你想公开你自己的数据,你有两个选择:你可以创建你自己的内容提供器(一个ContentProvider子类)或者你可以给已有的提供器添加数据-如果...
除了测试你的Android应用程序满足其功能需求,重要的是要确保你的代码没有结构性问题。代码结构简陋的可靠性和效率的影响你的Android应用程序,使您的代码很难维护。例如,如果您的XML资源文件包含未使用的名称空间,这占用空间并产生不必要的处理。其他的结构性问题,比如使用弃用元素或API调用所不支持的目标API版本,可能会...
一、API文档说明
  1.介绍
    用于不同Activity之间的数据传递
  1.重要方法
    clear():清除此Bundle映射中的所有保存的数据。
    clone():克隆当前Bundle
    containsKey(String key):返回指定...
由于Android较快的版本升级,部分API已经发生了变化。本篇探究的通过ContentProvider机制获取联系人的API从Android2.0开始做了很大调整,原来的android.provider.Contacts类及其下相关类由android.provider.ContactsContract代替。原类体系标记为Deprecated(废弃),因为兼容的原因目前还存在,但不保证以后的更新版本中...
1.加入读写权限
&uses-permission android:name=&android.permission.READ_CONTACTS& /&
&uses-permission android:name=&android.permission.WRITE_CONTACTS& /&
联系人信息Uri:
content://com.android.contacts/contacts
联系人电话Uri:
content://com.and...
在Android中startActivityForResult主要作用就是:
A-Activity需要在B-Activtiy中执行一些数据操作,而B-Activity又要将,执行操作数据的结果返回给A-Activtiy
package sn.len. &
import android.app.A &
import ...
在Android中几种布局方式中,能够实现重叠效果的只有FrameLayout, 它默认是把元素加到左上角,后面添加的元素将覆盖前面的元素。
在开发中我们有时会有这样的需求,即在固定的每隔一段时间执行某一个任务。比如UI上的控件需要随着时间改变,我们可以使用Java为我们提供的计时器的工具类,即Timer和TimerTask。
Timer是一个普通的类,其中有几个重要的方法;而TimerTask则是一个抽象类,其中有一个抽象方法run(),类似线程中的run()方法,我们使用...
这是一个完整系统Demo,从登陆--主页--查询展示具体详情...这节是一个自定义登陆弹出框,接着上一节的logo全屏页面之后将出现一个全屏的ImagView,点击弹出自定义登陆框,输入账号密码提交,弹出提交等待框效果如图:
提交等待框:
package com. &nbs...
导入一个android.view.View.OnClickListener包,出现错误
The import android.view.View.OnClickListener collides with another import statement
这个错误说的是导入的这个包和其他的包冲突了。
冲突包名:import android.content.DialogInterface.OnClickL
删掉这个包的引用就行了...
Animation从总体来说可以分为两类:
Tweened Animations:该类提供了旋转,移动,伸展,淡入淡出等效果
Frame-By-Frame Animations:该类可以创建一个Drawable序列,这些Drawable可以按照指定的事件间隔一个一个显示,和动画片差不多
一、Tweened Animations
Tweened Animatio...
Animations是一套实现动画的API
Animations的分类
1、 Tweened Animations渐变动画、补间动画
提供了旋转、移动、伸展和淡出等效果
2、 Frame-by-Frame Animations
可以创建一个Drawable序列,这些Drawable可以按照指定的时间间歇一个一个的显示。
Tweened ...
TranslateAnimation(float fromXDelta, float toXDelta, float fromYDelta, float toYDelta)&
参数说明:&
float fromXDelta 动画开始的点离当前View X坐标上的差值&
float toXDelta 动画结束的点离当前View X坐标上的差值&
float fromYDelta 动画开始的点离当前View Y坐...
下面是常用的一些属性 &
RelativeLayout用到的一些重要的属性: &
第一类:属性值为true或false &
android:layout_centerHrizontal 水平居中 &
android:layout_centerVertical 垂直居中 &
android:layout_centerInparent 相对于父元素完...
1.最简洁的方法
android.monDataKinds.P&
代码如下:
Cursor c = getContentResolver().query( monDataKinds.Phone.CONTENT_URI, null, null, null,null);&
package com.
import android.app.A
import android.app.AlertD
import android.content.ContentR
import android.database.C
import android.os.B
import android.provider.C
import android.view.V
import android.widget.Adapte...
说明,使用ListView,需重写响应滚动和选择的监听器
在AndroidManifest.xml中加上申请权限的语句:
&uses-permission android:name=&android.permission.READ_CONTACTS&&&/uses-permission&
主程序如下:
public class MyListView extends Activity {
package com.bivin.
import android.R.
import android.app.A
import android.content.ContentR
import android.database.C
import android.os.B
import android.provider.ContactsC
import android.provider.ContactsCon...
1.从一个错误代码引出我们的讨论:
android公开的API提供了访问方法,大家都知道使用TelephonyManager提供的方法,但是有些理解有误,如下国内一个比较大的andorid论坛提供的例子,就出现了错误:
帖子如下/thread-.html,其中实现代码没有注释,只能按照变量定义判断:
android自定义标题栏,解决背景颜色填充满
1. & & 设置标题栏背景
1& 准备背景图片: background_pix.png
注:用背景图片比用颜色好处,可以让背景看起来有凹凸感.
2& & drawable文件夹下放xml文件
bitmap_repeat.xml
&bitmap xmlns:android=&http://schem...
tools:context=&activity name&这一句不会被打包进APK。只是ADT的Layout Editor在你当前的Layout文件里面设置对应的渲染上下文,说明你当前的Layout所在的渲染上下文是activity name对应的那个activity,如果这个activity在manifest文件中设置了Theme,那么ADT的Layout Editor会根据这个Theme来渲染你当前的La...
在多Activity开发中,有可能是自己应用之间的Activity跳转,或者夹带其他应用的可复用Activity。可能会希望跳转到原来某个Activity实例,而不是产生大量重复的Activity。
这需要为Activity配置特定的加载模式,而不是使用默认的加载模式。
加载模式分类及在哪里配置
Activity有四种加...
1 设置ide主题和字体
大家刚下载下来的时候,感觉是不是有点儿怪怪的,有点儿2003的感觉,还好,stuido提供修改主题,和window设置主题一样,File-&setting-&appearance-&里边有一个theme,点击,你可以分别设置一下,看下效果,我选择的是windows,下边还有设置ide字体的,该字体是ide的字体,不是编辑代码...
下载地址 : /index.html 搜索android studio ,下载地址就出现了,下载不了的就翻墙吧(什么?你不会翻墙,那介绍个GoAgent耍耍)
页面评测看了太多,讲讲功能吧。Android Studio ,基于intellij idea 上进行进一步的插件集成,如果各位同学不知道什么是intellij idea(号称最犀利的ja...
import一个新android项目 ,报错行:
import android.annotation.SuppressL
SuppressLint cannot be resolved to a type
分析: 此问题原因是无法找到annotation包下的SuppressLint类, 推测是没有引入此jar 包.
在网上找了一下,没找到解决办法, 自己尝试解...
1 dip: device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA 推荐使用这个,不依赖像素。&
& & &这里要特别注意dip与屏幕密度有关,而屏幕密度又与具体的硬件有关,硬件设置不正确,有可能导致dip不能正常显示。在屏幕密...
在android中提供了一种异步回调机制Handler,使用它,我们可以在完成一个很长时间的任务后做出相应的通知
handler基本使用:
在主线程中,使用handler很简单,new一个Handler对象实现其handleMessage方法,在handleMessage中
提供收到消息后相应的处理方法即可
现在我们首先就有一个问题,我们使用myThre...
obtainmessage()是从消息池中拿来一个msg 不需要另开辟空间new
new需要重新申请,效率低,obtianmessage可以循环利用;
//use Handler.obtainMessage(),instead of msg = new Message(); &
//because if there is already an Message object,that not be used by &&...
在实际开发中LayoutInflater这个类还是非常有用的,它的作用类似于findViewById()。不同点是LayoutInflater是用来找res/layout/下的xml布局文件,并且实例化;而findViewById()是找xml布局文件下的具体widget控件(如Button、TextView等)。 具体作用: 1、对于一个没有被载入或者想要动态载入的界面,都需要使用LayoutInf...
我们知道Android系统服务挺多的,做程序时经常会用到,要想把这么多的服务都了解透彻还真不是一两天就能搞定的,首先我们得又有一个框架,脑海里要形成这样的模型,android到底有哪些服务,针对这些服务分类去学习他们
getSystemService(String name)是Android很重要的一个API,根据NAME来取得对应的Obje...
WindowManager是Android中一个重要的服务(Service )。WindowManager Service 是全局的,是唯一的。它将用户的操作,翻译成为指令,发送给呈现在界面上的各个Window。Activity会将顶级的控件注册到 Window Manager 中,
当用户真是触碰屏幕或键盘的时候,Window Manager就会通知到,而当控件有一些请求产生,也会经...
1 standard:
如果从A跳到A,intent5次,task里5个activity;
2 single Top:
如果从A 跳B,再从B跳A,如果此时栈顶为A,则不创建新实例,直接把Intent给A,但如果栈顶不是A,则还要创建A的实例
3 singleTask
如果从A跳B,再从B跳A,无论是否栈顶栈底,只要A在,则将Intent给A,不会创建A的新实例;
可以在代码文件中声明一个receiver,也可以在manifest中声明一个,前者中的receiver只有在该activity launch起来以后才会监听其所感兴趣的事件,而如果在androidManifext.xml中声明的话,就不受限制,随时可以监听感兴趣的事件。
1.首先谈谈在androidManifext.xml中注册一个receiver, 例如我们想监听相机按钮按下事件...
第一种情况:有MAIN,无LAUNCHER,程序列表中无图标
原因:android.intent.category.LAUNCHER决定应用程序是否显示在程序列表里&
第二种情况:无MAIN,有LAUNCHER,程序列表中无图标
原因:android.intent.action.MAIN决定应用程序最先启动的Activity,如果没有Main,则不知启动哪个Activity,故也不会有...
横竖屏切换后Activity会重新执行onCreat函数,但是在Android工程的Mainfest.xml中加入android:screenOrientation=&user& android:configChanges=&orientation|keyboardHidden&之后,横竖屏切换之后就不会去执行OnCreat函数了,而是会去调用onConfigurationChanged(),这样我们就能控制横竖屏的切换了...
程序执行需要读取到安全敏感项必需在androidmanifest.xml中声明相关权限请求, 完整列表如下:
android.permission.ACCESS_CHECKIN_PROPERTIES
允许读写访问&properties&表在 checkin数据库中,改值可以修改上传( Allows read/write access to the &properties& ta...
1.申请接收RECEIVE_BOOT_COMPLETED广播的权限
&uses-permissionandroid:name=&android.permission.RECEIVE_BOOT_COMPLETED&/ &
2.创建一个广播接收BOOT_COMPLETED广播的BroadcaseReceiver
public class BootReceiver extends BroadcastReceiver {
在开发android应用的过程中,总要去调试APP,安装时又想去了解android的目录结构。然后搜到了一点材料。
Google Android手机的软件为了安全性和稳定性都是默认安装到手机内存里,但是手机内存有限,所以我们会做app2sd操作,来让我们安装的软件放到sd卡上,这个操作是需要rom的支持的。
Android软件栈是通过一个应用程序框架提供一个Linux内核和一个C/C++库集合,而该应用程序框架为运行时和应用程序提供服务,并对它们进行管理。Android软件栈由下图中的元素组成。
--软件开发网
确认以下四种情形或方法:
1你需要启动模拟器,并且在Devices列表中选中相应的模拟器,模拟器控制器就可以操作了
2右键DDMS-&Reset
3重启Eclipse IDE
4如果通过adb connect连接到真机或VM WARE,Emulator Control 是无法使用的
--软件开发网
Android NDK 是在SDK前面又加上了&原生&二字,即Native Development Kit,因此又被Google称为&NDK&。
在此之前,Android平台的第三方应用程序均是依靠基于Java的Dalvik特制虚拟机进行开发的。原生SDK的公布可以让开发者更加直接的接触Android系统资源,并使用传统的C或C++语言编...
你可以看一下Gradle主页。
简单来说,Gradle是一个自动化编译部署测试工具。Gradle内容很广,还有专门的书介绍Gradle。而Android Studio使用的是Gradle中的一部分功能。
build.gradle
build.gradle就是Android Studio使用的Gradle文件,下面是一个最简单的build.gradle示例:
如果你之前有用Eclipse做过安卓开发,现在想要把Eclipse中的项目导入到Android Studio的环境中,那么首先要做的是生成Build Gradle的文件。因为Android Studio 是用Gradle来管理项目的,具体操作步骤如下:
从Eclipse中导出
& & & & 1.将你的ADT插件版本升级到22.0以上。
Alt+回车 导入包,自动修正
Ctrl+N & 查找类
Ctrl+Shift+N 查找文件
Ctrl+Alt+L &格式化代码
Ctrl+Alt+O 优化导入的类和包
Alt+Insert 生成代码(如get,set方法,构造函数等)
Ctrl+E或者Alt+Shift+C &最近更改的...
很多同学都安装了Android Studio,但是发现中文是乱码,其实这个很好解决的。
在IDE里点击File,选择Settings...快捷键是Ctrl+alt+s
在打开的窗口中,找到IDE Settings下的Appearance,在右侧勾选上&Override default fonts by&,然后在第一个下拉框中选择字体为&simsun&,然...
不同于Eclipse,选中项目右击即会出现&Properties&选项,可以设置项目文件的默认编码,可以根据自己的需要设置为UTF-8/GB2312等编码。但Android Studio的项目设置逻辑与Eclipse有很大的区别,执行的操作为 File-&Setting-&File Encodings然后来进行设置,如图1所示。如果只设置某个文件的编码,直接在And...
目前最新的官方gradle android 是0.4,除了android 官方的gralde的插件,也有一些开发者很早以前开发的gradle 插件,不过现在基本不维护了,所以这里不对这些第三方的gradle插件进行介绍。
android Gradle 0.4 插件maven中央库,目前新的android gradle 构建系统基本完善,现在已知的问题有
不支持android librar...
默认的不能改变,全灰,另存为即可 。Settings -& Editor -& Colors & Fonts -& Font -& 在&Scheme name&选择一个主题样式并另存为:aa,aa自己取得名字,这时font size就可以设置了,下面的左栏是可选字体列表,右侧为当前系统编辑器的字体,选择一个字体,并修改字体大小,保存即可。
Android PDF 阅读器 http://sourceforge.net/projects/andpdf/files/
个人记账工具 OnMyMeans http://sourceforge.net/projects/onmymeans/develop
Android电池监控 Android Battery Dog http://sourceforge.net/projects/andbatdog/
RSS阅读软件 Android RSS /p/android-rss/
1.android:allowTaskReparenting ,是否允许 activity 更换从属的任务,比如从短信息任务 切换到浏览器任务。&
2.android:alwaysRetainTaskState ,是否保留状态不变, 比如切换回 home, 再从新打开, activity 处于最后的状态 & & &&
3.android:clearTaskOnLan...
& & &SharedPreference是Android提供的一种轻量级的数据存储方式,主要用来存储一些简单的配置信息,例如,默认欢迎语,登录用户名和密码等。其以键值对的
方式存储,使得我们能很方便进行读取和存入。
& & &SharedPreference 文件保存在/data/data/&package name&g...
1. 在File/AndroidManifest.xml中添加以下代码
application标签中:
&uses-library android:name=&android.test.runner& /& &
application标签外:
&uses-permission android:name=&android.permission.RUN_INSTRUMENTATION& /& &
-----------查看设备连接状态 系列-----------
adb get-serialno & 获取设备的ID和序列号serialNumber
adb devices 查询当前计算机上连接那些设备(包括模拟器和手机),输出格式: [serialNumber] [state]
adb get-state &查看模拟器/设施的当前状态.
序列号[serialNum...
在android用adb安装和卸载应用程序时的前提条件是:需要ping通android模拟器的服务ip地址。
一、安装应用程序
1.安装第三方应用
& &$ adb install apk文件名
2.安装系统应用
$ adb remount
$ adb push apk文件名 /system/app
...
android:theme=&@android:style/Theme.Dialog& : Activity显示为对话框模式
android:theme=&@android:style/Theme.NoTitleBar& : 不显示应用程序标题栏
android:theme=&@android:style/Theme.NoTitleBar.Fullscreen& : 不显示应用程序标题栏,并全屏
android:theme=&The...
相信不少朋友也已经看过这个流程图了,也基本了解了Activity生命周期的几个过程,我们就来说一说这几个过程。
1.启动Activity:系统会先调用onCreate方法,然后调用onStart方法,最后调用onResume,Activity进入运行状态。
2.当前Activity被其他Activity覆盖其上或被锁屏:系统会调用onPause方法,暂停当前...
  Window下,进行adb shell后,举个例子,如果你的sdcard下保存着中文字符文件名的文件,则在CMD下显示是一些无规律的中文并夹杂着乱码。
  出现这种情况的原因是:
  Android中使用的是UTF-8字符,而CMD默认字符集是ANSI,中文环境下即为GBK,代码页为936。查询当前代码页的方法为在CMD下直接...
json数据格式解析我自己分为两种;
一种是普通的,一种是带有数组形式的;
普通形式的:
服务器端返回的json数据格式如下:
{&userbean&:{&Uid&:&100196&,&Showname&:&u75afu72c2ub50&,&Avtar&quo...
JSON的定义:
& & & &一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性。业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今大部分语言的支持),从而可以在不同平台间进行数据交换。JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为。 &n...
Android采用关系型数据库SQLite3,它是一个支持SQL轻量级的嵌入式数据库,在嵌入式操作上有很广泛的,WM采用的也是SQLite3
  关于过于、原理方面的东西在这篇文章里不会提到,但是如果你想能够快速的学会操作SQLite3,那这就是你要找的文章!
  首先,我们看一下api,所有数据库相关的...
Android日志系统提供了记录和查看系统调试信息的功能。日志都是从各种软件和一些系统的缓冲区中记录下来的,缓冲区可以通过 logcat &命令来查看和使用.
使用logcat 命令
你可以用 logcat &命令来查看系统日志缓冲区的内容:
[adb] logcat
&[&option&] ... [&...
Android LOG系统提供了收集和查看系统调试输出的功能。各种应用程序和系统其他部分输出的LOG都存储在一些循环缓冲区里,这些缓冲区可以通过 logcat 命令来查看和过滤使用。
使用logcat命令
你可以用 logcat 命令来查看和控制系统LOG Buffer里内容,通常用法:
[adb] logcat [&option&] ... [&filte...
Logcat在Android开发中是相当有用的。
但是,Logcat在使用时有时会遇到以下问题,在此提供点解决方法:
1. Logcat没有显示log
在window, show view, other.., android中调出device.
如果device有显示device信息,那么选中这个device,再回到Logcat就可以看到log了。
如果没有device,只能...
& & & &首先要在你的资源文件放入你想换的图标图片拖到drawable-XX文件夹下,然后你打开AndroidManifest.xml这个配置清单文件找到application标签里的这句android:icon=&@drawable/ic_launcher&其中ic_launcher这个是引用你要的图片的名字,比如你在drawable-XX下找了张aa.jpg图片,你可以...
& & & &我们大家都知道在手机上我们可以查看图标来知道我们都安装了什么样的应用,但实际上载Android中我们可以获得你安装应用的各种信息,(虽然在我的应用程序中只需要获得ICON即可),比如:名称,版本,包等,不仅仅只是图标。这样的话,给我们就带来了和多的方便,如果长时间不用的话,在查看时...
本文介绍了android中获取root权限的方法以及原理,让大家对android玩家中常说的&越狱&有一个更深层次的认识。
二、 Root的介绍
1.Root 的目的
可以让我们拥有掌控手机系统的权限,比如删除一些system/app下面的无用软件,更换开关机...
package my.android.
import android.os.E
import dalvik.annotation.S
import java.io.BufferedR
import java.io.DataInputS
import java.io.DataOutputS
import java.io.F
import java.io.FileR
import java.io.Inp...
在adb的说明文档中提到:
An ADB transport models a connection between the ADB server and one device
&or emulator. There are currently two kinds of transports:&
&- USB transports, for physical devices through USB
&- Local transports, for emulators runn...
怎么在通过adb工具查看手机ip信息,本来以为ifconfig可以查看呢,结果却有些意外。不过,可以通过netcfg命令。简单介绍两种具体方式:
1、进入adb目录,直接输入:adb shell netcfg
2、进入adb shell,输入netcfg
只adb中执行命令时,也许会提示...
1、安装adb驱动(adb驱动最好是最新的,要支持adb connect ip命令,可以用cmd中输入adb查看是否支持)
工具下载地址http://download.csdn.net/detail/longtian3837
2、确保开发板能上网,如果不行,在开发板的串口终端中输入:netcfg eth0 dhcp
& 然后查看...
adb(Android Debug Bridge)包括三个部分:
1)adb client, 运行在PC上(为DDMS,即IDE工作)
2)adb daemon(守护进程), 运行于Emulator(为与Emulator中的VM交互工作);
3)adb server(服务进程), 运行在PC(任务管理器上有),管理着adb client和adb daemon的通信.server与client通信的端口是是5037,
方法如下:
(1)开机一部Android手机(当然Pad也行)
(2)在手机中:设置--&应用程序--&开发--&USB调试
(3)把手机通过USB口连接到电脑
(4)在CMD中测试一下,连接是否正常,CMD中命令如下:
adb devices & 回车
&若显示你的设备名,则证明连接正常。
(5)执行真机...
1、连接上手机,手机开启adb。步骤:设置& 应用程序& 开发&选择USB调试;
2、android studio中设置使用手机而不是模拟器。
3、运行程序(SHIFT+F10)
--软件开发网
本文介绍在Android中如何获取系统应用程序列表。
Android系统为我们提供了很多服务管理的类,包括ActivityManager、PowerManager(电源管理)、AudioManager(音频管理) 等。除此之外,还提供了一个PackageManger管理类,它的主要职责是管理应用程序包。 通过它,我们就可...
  Android平板与智能手机为差旅途中的员工带来诸多便利,因此其进军企业环境的趋势已经难以阻挡。不过企业并不一定要允许员工将自己购置的设备带到办公地点,然后再被迫为不同各类的Android平台提供差异化技术支持。管理者完全可以主动购买设备并将其集成到业务网络当中,这样能够有效缓解Android碎片化的问题;但即使是...
  锁定屏幕对于移动终端来说是非常有必要的,但是对于机顶盒产品就没有这个必要了。所以本文介绍一下怎样让Android设备永不锁屏。 & & Android系统的锁屏时间存放在Setting数据库中,字段为Settings.System.SCREEN_OFF_TIMEOUT。查看SettingsProvider源码,查看如下文件的源码:frameworks/base/packages/Se...
Android开发过程中,一些程序在运行时,不希望手机自动锁屏,即保持系统的背景灯常亮,以防止程序执行时出现异常,实现起来很简单,只需要在创建Activity时,在onCreate()方法中,加入如下语句即可。
& & & getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
& &nbsp...
什么是Android?
版本:Android 4.0 r1
Android是一个移动设备的程序集合,包括的操作系统、中间件和关键的应用程序。 Android SDK 提供了必要的工具和API,使用Java编程语言在Android平台开发应用程序。
* 应用程序框架* 使组件可以被重用和替换
* Dalvik虚拟机* 为移动...
应用基础-Application Fundamentals
Android应用程序以java作为开发语言。用Android SDK 提供的工具,可以将应用程序所需要的数据和资源文件打包到一个android包文件中,这个文件用.apk作为扩展名。所有代码都在单个.apk文件中,当成一个应用,这个文件就是通常安装在Android设备中的应用.
一旦安装到了一个设备...
1 设置ide主题和字体
大家刚下载下来的时候,感觉是不是有点儿怪怪的,有点儿2003的感觉,还好,stuido提供修改主题,和window设置主题一样,File-&setting-&appearance-&里边有一个theme,点击,你可以分别设置一下,看下效果,我选择的是windows,下边还有设置ide字体的,该字体是ide的字体,...
& &LayoutInflater的使用,在实际开发种LayoutInflater这个类还是非常有用的,它的作用类似于 findViewById(),不同点是:
& & LayoutInflater是用来找layout下xml布局文件,并且实例化!
& & findViewById()是找具体xml下的具体 widget控件(如:Button,TextView等)。
在Android开发中,我们Android客户端如果要和服务器端交互,一般都会采用json数据格式进行交互,FastJson是一个Json处理工具包,包括&序列化&和&反序列化&两部分,Fastjson是一个Java语言编写的高性能功能完善的JSON库。一个JSON库涉及的最基本功能就是序列化和反序列化。Fastjson支持java bean的直...
& &我们在做Android开发的时候有时候会遇到需要你获取当前使用手机的手机号吗,这个如何获取呢?
& &TelephonyManager tm = (TelephonyManager)//创建电话管理&
& &activity.getSystemService(Context.TELEPHONY_SERVICE);//与手机建立连接&
& &nbsp...
  Android开发又将带来新一轮热潮,很多开发者都投入到这个浪潮中去了,创造了许许多多相当优秀的应用。其中也有许许多多的开发者提供了应用开源项目,贡献出他们的智慧和创造力。学习开源代码是掌握技术的一个最佳方式。下面推荐几个应用开源项目,这些项目不仅提供了优秀的创意,也可以直接掌握 Android内核的接口使...
数据库是保存用户数据的文件,包括默认的设置和个人重新设置的数据,这些数据保存在/data/data下的各个以
apk包名为目录名的路径下:
#cd /data/data
#busybox find ./ -name &*.db& -print
&./com.Android.email/databases/EmailProviderB...
安卓开发如何获取屏幕的高度和宽度,具体参看如下:
int dw = getWindowManager().getDefaultDisplay().getWidth();
int dh = getWindowManager().getDefaultDisplay().getHeight();
--软件开发网
在安卓开发中,几乎每一个App应用程序都需要与服务器端通讯,安卓程序客户端与服务器端通讯一半有两种方式:
1.安卓客户端通过socket与服务器进行通讯。
下面先看安卓客户端通过socket与服务器进行通讯的方法及其实例程序:
安卓客户端通过socket与服务器端通讯一般可以按...
最近Google的在Google I/O大会上推出了一款新的开发工具&&android studio。这是一款基于intellij IDE的开发工具,使用Gradle构建,相信做过java的童鞋们都知道这个工具。今天俺安装了下尝尝鲜,打开一看其实和之前的intellij ide创建Android工程是一样的,就是有做了些简化。废话不多说开始我们的...
SDK:(software development kit)软件开发工具包。被软件开发工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。
因此,Android SDK 指的是Android专属的软件开发工具包。
Android是谷歌(Google)公司推出的手机开发平台。
与iPhone相似,...
Android Studio是Google新发布的Android应用程序开发环境,Android Studio是基于IntelliJ IDEA开发而成的。在Android Studio开发环境中,Android开发者可以非常方便地调试Android应用程序,Android Studio不仅是Android开发的IDE集成环境,而且还有以下特点:
基于 Gradle 的构建支持
Android 专属的...
Android是一个针对触摸屏专门设计的操作系统,当点击编辑框,系统自动为用户弹出软键盘,以便用户进行输入。
那么,弹出软键盘后必然会造成原有布局高度的减少,那么系统应该如何来处理布局的减少?我们能否在应用程序中进行自定义的控制?这些是本文要讨论的重点。
一、软键盘显示的原理
软件盘的本质是什么?...
手机的在线支付,被认为是2012年最看好的功能,我个人认为这也是移动互联网较传统互联网将会大放光彩的一个功能。
人人有手机,人人携带手机,花钱买东西,不再需要取钱付现,不再需要回家上网银,想买什么,扫描一下,或者搜索一下,然后下单,不找零,直接送到你家,这将是手机支付给我们带来的全新交易体验。
在Android项目文件夹里面,主要的资源文件是放在res文件夹里面的
1:assets文件夹是存放不进行编译加工的原生文件,即该文件夹里面的文件不会像xml,java文件被预编译,可以存放一些图片,html,js, css等文件。
2:res文件夹里面的多个文件夹的各自介绍
res/anim/ XML文件,它们被编译进逐帧动画(frame by f...
插件安装方法
& & & &插件大概有三种安装方法:
& & & &第一种:知道在线安装地址。Eclipse&Help&Install New Software...&地址栏(Work with)中输入安装地址&勾选要安装的插件&Next&同意安装协议&Finish&等待安装完毕&...
英文原文:Bongzimo &翻译: ImportNew-黄小非
随着Android平台市场份额的持续猛增 ,越来越多的开发者开始投入Android应用程序的开发大潮。如果您是一位2013年刚刚入行的Android开发新兵,恭喜你,因为这个平台已经在过去几年里变得愈发成熟了,绝对值得住你全情投入。目前来看,Android现成的开发资...
android开发常见问题
android开发热点排行
android开发资源下载
版权所有: & 2013 All Rights Reserved.

我要回帖

更多关于 event.getx getrawx 的文章

 

随机推荐