private String intToIp(int i) {
/**
* " -- 表示双引号(")
* & -- 表示位与运算符(&)
* < -- 表示小于运算符(<)
* > -- 表示大于运算符(>)
* -- 表示空格( )
*/
return
( i & 0xFF) + "." +
((i >> 8 ) & 0xFF) + "." +
((i >> 16 ) & 0xFF) + "." +
((i >> 24 ) & 0xFF)
;
}
由于int是32位,和0xff相与后,高24比特就会被清0。
Integral Types and Values
The values of the integral types are integers in the following ranges:
* For byte, from -128 to 127, inclusive
* For short, from -32768 to 32767, inclusive
* For int, from -2147483648 to 2147483647, inclusive
* For long, from -9223372036854775808 to 9223372036854775807, inclusive
* For char, from '\u0000' to '\uffff' inclusive, that is, from 0 to 65535
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("http://www.stackoverflow.com"));
startActivity(intent);
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="50dip"
android:layout_width="fill_parent"
android:layout_weight="0">
<ImageView
android:layout_height="50dip"
android:layout_width="50dip"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"/>
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_centerInParent="true"
android:text="some text"/>
<ImageView
android:layout_height="50dip"
android:layout_width="50dip"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"/>
</RelativeLayout>
第一步,
将两个.java文件拷贝到当前Package工程src目录中。
- PreconditionActivityHelper.java
- DownloaderActivity.java
将res/values/string.xml中所定义的数据与现有string.xml的数据合并。
第二步,将下边的代码加入到主Activity的onCreate()方法中。
然后再将这些Final Static变量添加到主Activity类中。这些变量定义了config文件的URL,以及在SD Card中存放文件的地址等。
通常在创建一个新的Package时,都需要考虑Package所需要的Permission,因为这个涉及到之后我们所调用的某些功能是否被允许在用户终端调用。
添加两个标签:
增加所需要的Permission
添加DownloaderActivity
第四步,依据下列格式创建一个Config文件,其中包含了需要下载的文件列表和版本号等。
- version: 用于与传递到DownloaderActivity.ensureDownloaded()方法中的CONFIG_VERSION参数进行比对。
- src: 可以使用相对地址或者绝对地址来提供文件源。
- dest: 用于与传递到DownloaderActivity.ensureDownloaded()方法中的DATA_PATH参数进行比对。
- size: 作为一个可选参数,用于注释文件大小。如果包含了size参数,那么将会对之后的操作提高一定的效率。
- md5: 也是一个可供选择的参数,主要是用来确保从外部所得到的数据被准确的保存在本地存储设备中。
注意:每个file都可以包含多个子标签 “part” ,其可以方便的对一个庞大的数据文件群,单独的标识文件基本信息。
第五步,将之前创建的Config文件和其中所列举的实际文件上传到服务器中指定的地址中。
第六步,检查SD Card在当前设备中是否可用,对于应用模拟器的朋友可以根据本站所提供的教程来创建虚拟SD Card。