查看设备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
  2. android tabhost
  3. Android官方架构组件:Lifecycle
  4. Android(安卓)O 版本(Android(安卓)8.0) 存储空间不足时提醒
  5. android手势滑动——左右滑动效果实现
  6. 对Android应用进行单元测试
  7. android打开前置摄像头和后置摄像头
  8. android唤醒屏幕--保持屏幕唤醒-Reprinted
  9. Android(安卓)TV listView焦点平滑移动

随机推荐

  1. [Linux OS] Ubuntu 16.04 上实时显示上下
  2. 小型web服务器thttpd的学习总结(上)&小型we
  3. linux-阿里云仓库搭建-搭建本地仓库-yum
  4. 如何在Linux下优雅的查询日志
  5. 类似于非Sandy Bridge / xeon处理器的RAP
  6. 调整环境让你的PHP能调用JAVA类
  7. linux下编译Hive 源码并导入eclipse中(使
  8. linux下查找包含关键字的文件
  9. Linux(Debian)设置开机自启动脚本
  10. jira 4.2破解安装Linux和windows版