如何使用android2.2系统内置的IP10.0.2.2???

android&assets内置文件的使用方法
assets文件夹资源的访问
assets文件夹里面的文件都是保持原始的文件格式,需要用AssetManager以字节流的形式读取文件。
先在Activity里面调用getAssets()&来获取AssetManager引用。
&2. 再用AssetManager的open(String fileName,
accessMode)&方法则指定读取的文件以及访问模式就能得到输入流InputStream。&
&3. 然后就是用已经open file
的inputStream读取文件,读取完成后记得inputStream.close()&。
&4.调用AssetManager.close()&关闭AssetManager。
需要注意的是,来自Resources和Assets 中的文件只可以读取而不能进行写的操作
以下为从Raw文件中读取:
&&& public
String getFromRaw(){&
&&&&&&&&&&&
&&&&&&&&&&&&&&&
InputStreamReader inputReader = new InputStreamReader(
getResources().openRawResource(R.raw.test1));
&&&&&&&&&&&&&&&
BufferedReader bufReader = new BufferedReader(inputReader);
&&&&&&&&&&&&&&&
String line="";
&&&&&&&&&&&&&&&
String Result="";
&&&&&&&&&&&&&&&
while((line = bufReader.readLine()) != null)
&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&
&&&&&&&&&&&
} catch (Exception e) {&
&&&&&&&&&&&&&&&
e.printStackTrace();&
&&&&&&&&&&&
}&&&&&&&&&&&&&
以下为直接从assets读取
&&& public
String getFromAssets(String fileName){&
&&&&&&&&&&&
&&&&&&&&&&&&&&&&
InputStreamReader inputReader = new InputStreamReader(
getResources().getAssets().open(fileName)
&&&&&&&&&&&&&&&
BufferedReader bufReader = new BufferedReader(inputReader);
&&&&&&&&&&&&&&&
String line="";
&&&&&&&&&&&&&&&
String Result="";
&&&&&&&&&&&&&&&
while((line = bufReader.readLine()) != null)
&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&
&&&&&&&&&&&
} catch (Exception e) {&
&&&&&&&&&&&&&&&
e.printStackTrace();&
&&&&&&&&&&&
然后对读取到的内容按自己的要求进行使用。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。android开发关于和使用本机内存,内置存储卡和外置存储卡大揭秘 - Android移动开发技术文章_手机开发 - 红黑联盟
android开发关于和使用本机内存,内置存储卡和外置存储卡大揭秘
android开发关于和使用本机内存,内置存储卡和外置存储卡
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
关于android存储器简介:
& & & & & & & & &android开发常常需要涉及数据缓存,这就需要我们了解手机当前使用的内存状况,是否存在外置存储卡,如果有怎么办,没有是否使用内置存储卡。
首先手机本机存储器,有Rom,Ram。
& &Rom &:在android中Rom相当于系统盘,当C盘用 ,很多时候要使用需要获取root权限。
& & & & & & & 一般可以分为机身内存和内置存储(三星的多是叫:USB存储器);
& & & & & & &机身内存包括system、data和cache等分区目录,软件默认都是安装机身内存或者内置存储卡里的 。
& & & & & & data(就是手机储存总量)+system(手机系统占用)
& & & & & &&
& & & & & & & & 具体看是什么手机;
& &Ram:在相当于电脑的运行内存,运存 &。不多做解释,就是随机运行时内存,断电数据全部消失。
& & & & 外置存储器有:手机存储器 (TF卡), 相当于D,E ,F 等硬盘。
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
android开发中读取手机存储器和外置存储器。
Android读取手机内存之机身内存
这个我反复试验过,可以弄入以及读取数据到data目录下,但是需要获取root权限,这个真有点纠结,难道要使用**软件的人都去root下?。嘿嘿,所以这里不推荐,这里就不粘贴代码了........
Android读取手机内存之内置存储器实例
下面给出一个小例子来说明如何Android读取手机内存里的文件,这在Android开发中是比较重要的一部分,如何要是掌握不好的话,我们就没法把数据库里保存的数据给读出来,也就是说我们我们每一次玩游戏的时候,我们的数据库都是最原始的数据,这样就会给我们带来很多的麻烦。如果出现这样的事情,那么你的应用就是非常烂的,代码如下:
[java] view plaincopy
public static InputStream readInternalFileInputStream(Context context,String fileName){ & & &
* 读取手机内存文件 & &
try{ & & &
FileInputStream fis = context.openFileInput(fileName); & & &
}catch(Exception e){ & & &
public static String readInternalFile(Context context,String fileName){ & & &
* 读取手机内存文件 & &
try{ & & &
byte[] buffer = new byte[512]; & & &
int read =0; & & &
StringBuffer stringbuffer = new StringBuffer(); & & &
FileInputStream fis = context.openFileInput(fileName); & & &
read = fis.read(buffer); & & &
if(read&0) & & &
stringbuffer.append(new String(buffer, 0, read, &utf-8&)); & & &
}while(read!=-1); & & &
fis.close(); & & &
return stringbuffer.toString(); & & &
}catch(Exception e){ & & &
android 读取sd卡中的图片
一 读取sd卡中的图片
& & &1 获取读取sd的权限
& & & & 在AndroidMainfest.xml文件中添加
[java] view plaincopy
& & & & &!-- 在SDCard中创建与删除文件权限 --& &
&uses-permission android:name=&android.permission.MOUNT_UNMOUNT_FILESYSTEMS& &&/uses-permission& &
&!-- 往SDCard写入数据权限 --& &
&uses-permission android:name=&android.permission.WRITE_EXTERNAL_STORAGE& &&/uses-permission& &
&uses-permission android:name=&android.permission.RESTART_PACKAGES& &&/uses-permission& &
& & 注意:在&application...&&/application&前添加
& & 2 找到sd卡的目录(以真机的情况说明)
& & & *图片文件路径
&*打印Environment.getExternalStorageDirectory()得到:&/mnt/sdcard&,即找到了sd卡的根目录
[java] view plaincopy
public String filePath=Environment.getExternalStorageDirectory()+&/client/tile/1_0_0.jpg&; &
& &3 根据路径获取图片 & &
[java] view plaincopy
File mfile=new File(path); &
if (mfile.exists()) {//若该文件存在 &
Bitmap bm = BitmapFactory.decodeFile(path); &
二 注意事项
& & 在读取sd卡中图片的过程中的一些可用判断
& & &1 Environment.getExternalStorageState()获取路径是否成功
& & & &/*如获取成功,返回值为MEDIA_MOUNTED*/
[java] view plaincopy
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) &
& & & String filePath=Environment.getExternalStorageDirectory().getPath(); &
& &2 获取sd卡的权限成功
& & &/*fileName=Environment.getExternalStorageDirectory()+&/client& 是个文件夹目录*/
[java] view plaincopy
File f = new File(fileName); &
if(f.canRead()) &
Log.v(&EagleTag&,&very bad&); &
if(f.canWrite()) &
& & &Log.v(&EagleTag&,&very good&); &
--------------------------------------------------------------------------------------------------------------
android的data和system以及cache系统目录讲解
/system 存放的是rom的信息;
/system/app 存放rom本身附带的软件即系统软件;
/system/data 存放/system/app 中核心系统软件的数据文件信息。
&/data 存放的是用户的软件信息(非自带rom安装的软件);
/data/app 存放用户安装的软件;
/data/data 存放所有软件(包括/system/app 和 /data/app 和 /mnt/asec中装的软件)的一些lib和xml文件等数据信息;
/data/dalvik-cache 存放程序的缓存文件,这里的文件都是可以删除的。
/sdcard和/mnt/sdcard一样吗?/mnt/asce是干嘛用的?
我来谈谈/mnt/asce目录
1、android升级到2.2以上,出现了这个目录,这个目录是干什么的呢?
2、2.2以上,出现了新的功能,应用可以安装的sd卡上,哪到底安装在哪儿呢?我找遍了整个卡结果发现了所有这些应用安装在.android 的asecure目录下,要把卡放到读卡器上去看才知道。
3、那是如何与系统发生关系的,学过unix的人都知道,mnt是在/下的一个目录,sd卡是通过mount挂接上去的,/mnt叫挂接点,系统就能通过挂接点/mnt访问sd卡了
4、在/mnt下有三个目录如下:asec、secure、sdcard 其中asec就是我们安装在卡上的应用、secure是用于sd卡应用程序安装路径加密的吧自己猜想的、sdcard就是卡上的其他内容。
/mnt/asce实际上对应的真正物理目录是/mnt/sdcard/.android_secure(记住android_secure前有个点,这是个隐藏目录)
我们回过来看/sdcard和/mnt/sdcard就容易理解:
/sdcard 目录,这是一个软链接(相当于windows的文件夹的快捷方式),链接到/mnt/sdcard 目录,即这个目录的内容就是sdcard的内容。
& &因此,用户程序安装到到sd卡上后,其内容可能分散到:/mnt/asec , /mnt/secure , /data/data 。
& & 要实现app2sd,目前比较流行有两种方案,分别是app2ext 和 data2ext,下面分别介绍下这2种方案。
& & app2ext的原理是,删除data区中的app文件夹,然后在sd卡的ext分区上创建一个app文件,并通过软链接映射到data区。这样系统会以为,app这个软链接是一个真实的文件夹,会把程序都安装在里面,但实际上,这些程序都安装到卡上了。但由于操作系统并不知道,所以这种情况下,我们依然看到系统显示这个程序是安装在&内置空间&的。
& & data2ext则更彻底,它不是用软链接,而是直接用&挂载&功能,Linux下所有的存储设备都必须挂载成一个文件夹才能进行文件操作(如sd卡就挂载在/mnt/sdcard目录下面)。data文件夹本来是对应手机内部Flash中的一个分区(为了保持术语的准确,这里要把内部Flash和内存相区别,内部Flash是ROM,内存是RAM)。而data2ext则是修改了挂载对应关系,使data文件夹挂载的不是内置Flash,而是sd卡的整个ext分区。这样,不仅是app,连存储程序设置的data和缓存dalvik-cache都会存储到sd卡中。
& & 可以看到,dalvik-cache和data这两个文件夹的位置,是这两种方式的一个重大区别。其中dalvik-cache是预编译缓存,data(不同于/data,这个是/data/data)是存储程序数据的地方,例如游戏的存档记录,软件的配置信息等。这样有什么区别,区别在于假如你重刷了ROM,app2ext的话,所有的程序都可以保留,但是这些程序的配置信息和游戏的存档都会丢失。而data2ext则可以连同配置和存档都保留,但是dalvik-cache也是一个容易积累垃圾的地方,这些垃圾也会一同保留。
& & data2ext由于是把整个data分区都放在sd卡上,因此,我们刷ROM需要WIPE的时候,这个data分区的内容就可能不会被wipe,这可以保存用户的个人资料,但是也可能造成莫名其妙的故障。Android Path的使用 -
- ITeye技术网站
博客分类:
import android.app.A
import android.os.B
import android.view.V
import android.content.C
import android.graphics.C
import android.graphics.C
import android.graphics.P
import android.graphics.RectF;
import android.graphics.P
import android.graphics.S
import android.graphics.LinearG
//主程序中继承自Android.view.View的 MyView类,重写 MyView的onDraw()方法,
//一开始就会运行绘制的工作,在onDraw()中以Paint将几何图形绘制在Canvas上,
//以 paint.setColor() 改变图形颜色、以 paint.setStyle()的设置来控制画出的的
//图形是空心还是实心。程序的最后一段,就是直接在Canvas写上文字,随着Paint对
//象里的属性设置,也会有不同的外观模式。
public class GraphicesActivity extends Activity {
/** Called when the activity is first created. */
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
/*设置ContentView为自定义的MyVieW*/
MyView myView=new MyView(this);
setContentView(myView);
/* 自定义继承View 的MyView*/
private class MyView extends View {
public MyView(Context context){
super(context) ;
/*重写onDraw()*/
protected void onDraw(Canvas canvas)
super.onDraw(canvas);
/*设置背景为白色*/
canvas.drawColor(Color.WHITE);
Paint paint=new Paint();
/*去锯齿*/
paint.setAntiAlias(true);
/*设置paint的颜色*/
paint.setColor(Color.RED);
/*设置paint的 style 为STROKE:空心*/
paint.setStyle(Paint.Style.STROKE);
/*设置paint的外框宽度*/
paint.setStrokeWidth(3);
/*画一个空心圆形*/
canvas.drawCircle(40, 40, 30, paint);
/*画一个空心正方形*/
canvas.drawRect(10, 90, 70, 150, paint);
/*画一个空心长方形*/
canvas.drawRect(10, 170, 70,200, paint);
/*画一个空心椭圆形*/
canvas.drawOval(new RectF(10,220,70,250), paint);
/*画一个空心三角形*/
Path path=new Path();
path.moveTo(10, 330);
path.lineTo(70,330);
path.lineTo(40,270);
path.close();
canvas.drawPath(path, paint);
/*画一个空心梯形*/
Path path1=new Path();
path1.moveTo(10, 410);
path1.lineTo(70,410);
path1.lineTo(55,350);
path1.lineTo(25, 350);
path1.close();
canvas.drawPath(path1, paint);
/*设置paint的颜色*/
paint.setColor(Color.BLUE);
/*设置paint 的style为 FILL:实心*/
paint.setStyle(Paint.Style.FILL);
/*画一个实心圆*/
canvas.drawCircle(120,40,30, paint);
/*画一个实心正方形*/
canvas.drawRect(90, 90, 150, 150, paint);
/*画一个实心长方形*/
canvas.drawRect(90, 170, 150,200, paint);
/*画一个实心椭圆*/
RectF re2=new RectF(90,220,150,250);
canvas.drawOval(re2, paint);
/*画一个实心三角形*/
Path path2=new Path();
path2.moveTo(90, 330);
path2.lineTo(150,330);
path2.lineTo(120,270);
path2.close();
canvas.drawPath(path2, paint);
/*画一个实心梯形*/
Path path3=new Path();
path3.moveTo(90, 410);
path3.lineTo(150,410);
path3.lineTo(135,350);
path3.lineTo(105, 350);
path3.close();
canvas.drawPath(path3, paint);
/*设置渐变色*/
Shader mShader=new LinearGradient(0,0,100,100,
new int[]{Color.RED,Color.GREEN,Color.BLUE,Color.YELLOW},
null,Shader.TileMode.REPEAT);
//Shader.TileMode三种模式
//REPEAT:沿着渐变方向循环重复
//CLAMP:如果在预先定义的范围外画的话,就重复边界的颜色
//MIRROR:与REPEAT一样都是循环重复,但这个会对称重复
paint.setShader(mShader);//用Shader中定义定义的颜色来话
/*画一个渐变色圆*/
canvas.drawCircle(200,40,30, paint);
/*画一个渐变色正方形*/
canvas.drawRect(170, 90, 230, 150, paint);
/*画一个渐变色长方形*/
canvas.drawRect(170, 170, 230,200, paint);
/*画一个渐变色椭圆*/
RectF re3=new RectF(170,220,230,250);
canvas.drawOval(re3, paint);
/*画一个渐变色三角形*/
Path path4=new Path();
path4.moveTo(170,330);
path4.lineTo(230,330);
path4.lineTo(200,270);
path4.close();
canvas.drawPath(path4, paint);
/*画一个渐变色梯形*/
Path path5=new Path();
path5.moveTo(170, 410);
path5.lineTo(230,410);
path5.lineTo(215,350);
path5.lineTo(185, 350);
path5.close();
canvas.drawPath(path5, paint);
paint.setTextSize(24);
canvas.drawText("圆形", 240, 50, paint);
canvas.drawText("正方形", 240, 120, paint);
canvas.drawText("长方形", 240, 190, paint);
canvas.drawText("椭圆形", 240, 250, paint);
canvas.drawText("三角形", 240, 320, paint);
canvas.drawText("梯形", 240, 390, paint);
浏览: 404611 次
来自: 北京
请问楼主demo中为什么是CustomView中的子view在 ...
demo不好用呢!!!
博主,我真想亲你一口啊,我在做AndroidTV,横向滑动一卡 ...
weifengxiatian 写道44 postInvalid ...教你如何制作安卓rom教程(内置两个教程看完之后基本能解决所有难题)_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
教你如何制作安卓rom教程(内置两个教程看完之后基本能解决所有难题)
上传于||暂无简介
阅读已结束,如果下载本文需要使用
想免费下载本文?
下载文档到电脑,查找使用更方便
还剩12页未读,继续阅读
你可能喜欢

我要回帖

更多关于 android2.2系统 的文章

 

随机推荐