查看设备adb devices

指定设备adb -s emulator-5556 install helloWorld.apk

abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ

android 源码

http://grepcode.com/project/repository.grepcode.com/java/ext/com.google.android/android/

android:layout_gravity 表示控件本身的布局
android:gravity 表示内部的布局

Action Data: 对谁(具体的)做了什么

Action Type: 对什么(一类的)做了什么

Category:什么时候做

launchmode4种模式:
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的新实例;
4,singleInstance
不同于前3种模式,前3种只是在同一个task的,而实例化的策略不同。这种模式下的activity会单独存在一个task下。
现成的例子是google地图。比如我有一个应用是导游方面的,其中调用的google地图Activity。那么现在我比如按home(后台activity onstop,back是finish)键,然后到应用列表中打开google地图,你会发现显示的就是刚才的地图,实际上是同一个Activity。
如果使用上面三种模式,是无法实现这个需求的。google地图应用中有多个上下文Activity,比如路线查询等的,导游应用也有一些上下文Activity。在各自应用中回退要回退到各自的上下文Activity中。
总结:
1 2:会创建新实例
3 4:不会创建新实例
123:activity的taskid相同
4:activity的taskid不同。被分到单独一个task中

<!--?xml version="1.0" encoding="UTF-8" standalone="no"?--> Market 相关
1. //寻找某个应用
2. Uri uri = Uri.parse("market://search?q=pname:pkg_name");
3. Intent it = new Intent(Intent.ACTION_VIEW, uri);
4. startActivity(it);
5. //where pkg_name is the full package path for an application
1. //显示某个应用的相关信息
2. Uri uri = Uri.parse("market://details?id=app_id");
3. Intent it = new Intent(Intent.ACTION_VIEW, uri);
4. startActivity(it);
5. //where app_id is the application ID, find the ID
6. //by clicking on your application on Market home
7. //page, and notice the ID from the address bar

Android颜色

Android获取View坐标的几种方法:
int[] location = newint[2] ;
view.getLocationInWindow(location); //获取在当前窗口内的绝对坐标,
getLeft, getTop, getBottom, getRight, 这一组是获取相对在它父窗口里的坐标
view.getLocationOnScreen(location);//获取在整个屏幕内的绝对坐标,注意这个值是要从屏幕顶端算起,也就是包括了通知栏的高度
location [0]--->x坐标,location [1]--->y坐标

管理你的线程

android.graphics包中的一些类的使用

经典项目

1.List转换成为数组。

List list = new ArrayList();
list.add("1");
list.add("2");
final int size = list.size();
String[] arr = (String[])list.toArray(new String[size]);

2.数组转换成为List。

String[] arr = new String[] {"1", "2"};
List list = Arrays.asList(arr);

Java:对象的强、软、弱和虚引用

android用于打开各种文件的intent

委托

如楼主所说,有些地方可以直接调用对象的方法,而不用委托。
但有些时候这样做不合适。
比如,在写这个类的时候,根本就不能确定要调用哪个对象的方法:例如,你把自己的一个对象上的方法挂在微软的textbox 的一个事件上。微软在写textbox时根本就不可能知道这个事件发生时,需要调用哪个对象的哪个方法,只有你自己去指定说需要调什么方法,并且以委托的方式挂在相应的事件上。

微软在写textbox的事件时,唯一能确定的是这个事件的格式,或者说这个事件需要调用的方法的格式,
类似于 button1_click(object sender, EnentArgs e) 等等。 只要是按照这个类型写的方法,都能被挂在这个事件上,并且在事件发生时,方法会被调用。

而规定了事件方法格式,就确保了事件发生时被调用的方法都是合法的,不会出现方法类型不匹配等等。这就是所谓的委托是类型安全的。而c++下面用void* 的函数指针实现事件处理缺少对函数格式的检查。 所以C# 发明了委托这个怪东西,为的就是然被调用的函数格式正确。


这只是基于消息驱动的实现方式之一。

另一个普遍的方式,是使用接口。这是java的事件处理方式。 它以接口的形式规定了被调用方法的格式。这种方式更直接,更简单,更容易理解。

两种方式各有利弊,有各自的使用场景,但从效果上看是等效的。

4DrawableBitmap的区别

对比项

Bitmap

Drawable

显示清晰度

相同

相同

占用内存

支持缩放

支持色相色差调整

支持旋转

支持透明色

绘制速度

支持像素操作

更多相关文章

  1. android中常见的二种数据解析方法----XML和Json
  2. Android SDK Manager无法更新解决方法
  3. Android 之事件的分发和消费机制
  4. Android Timer 更好方法
  5. 删除android ScrollView边界阴影方法
  6. android度量相对于地球坐标系的加速度
  7. Android显示网络图片相关实现方法浅谈

随机推荐

  1. android 获取当前运行进程的名称
  2. Android 中获取图片占内存的大小
  3. android Httpclient 设置timeout
  4. Android消息通知Totast的实现
  5. android关于fragment的构造函数用法建议
  6. Android实践 -- Android wifi 设置相关
  7. Android(安卓)ViewStub
  8. Android Dialog触摸对话框外部让其消失的
  9. android 项目源码
  10. Android 正则表达式实例