Android基础整理(一)

android开发中常用的命令
       
adb.exe (android debug bridge) 链接电脑和手机 进行数据传输
        adb devices 列出当前设备
        adb pull <remote> <local>
        adb push <local> <remote>
        adb shell 挂载到linux的空间
        adb install xxx.apk 如果有多个设备,我们可以指定设备
        adb uninstall com.xx.xxx.xxxx 卸载应用
        adb kill-server -- 杀死调试桥
        adb start-server -- 开启调试桥

android中提供的压力测试的工具:       

        adb shell
        monkey 5000 这个太恶心.了 手机快点爆了(后面的数字是指点多少下)

android中进行单元测试
main方法不能用,因为android程序需要在dalvike虚拟机中运行,如果直接main执行,是用的jvm虚拟机
同样的原因,@Test也不能用
如果想在android中执行单元测试:
在清单文件中声明使用如下的指令集:
<instrumentation android:name="android.test.InstrumentationTestRunner"
                                android:targetPackage="要测试的程序包名" android:label="Tests for My App" />
在清单文件中声明要使用jar包: 在<application>下配置<uses-library android:name="android.test.runner" />
写一个测试类继承AndroidTestCase,在这个类中写测试方法 这个方法必须是共有的无参非静态无返回的方法

文件存储
1.操作手机内部存储中的文件
        可以使用流的方式直接操作文件
        路径最好不要写死,一旦写死当修改应用包名时程序中的路径也跟着要修改
        可以通过如下的方法动态获取路径:
            getFilesDir
                会获取/data/data/[包名]/files 目录,这个目录下存储的内容会有保障一直存在
            getCacheDir
                会获取/data/data/[包名]/cache 目录,这个是缓存目录,目录下存储的内容随时可能被回收,一般放置可有可无的缓存文件.虽然系统会在空间不足时帮我们回收次文件夹下的内容,但是android推荐如果程序员明确的直到这个文件夹下的文件已经不需要时,应该立即手动删除.
           
2.操作外部存储空间(SDCARD)中的文件:
        (1)写入sdcard需要声明权限
        (2)默认情况下读取sd卡是不需要声明权限,但是在高版本的android中在开发者选项中提供了开去读sd卡保护的选项,虽然这个选项在很多手机中是不起作用的但是部分手机是可以用的,为了防止无法读取sd卡的问题,通常我们在加上sd卡的写权限时会一起加上读取sd卡权限
        (3)/mnt/sdcard 不同的厂商生产的手机sdcard的目录可能不同,不能写死,需要通过 Environment.getExternalStorageDirectory()获取
        (4)由于sd卡是可以卸载的在操作之前最好检查sd卡是否插入并处于可操作的状态
            String stat = Environment.getExternalStorageState();
                        if(Environment.MEDIA_MOUNTED.equals(stat)){}else{}

3.android提供的读写文件的快捷方法
  FileInputStream in = Context.openFileInput(name); -- 直接操作/data/data/[包名]/files目录下的文件流
  FileOutputStream out = Context.openFileOutput(name, mode); -- 直接操作/data/data/[包名]/files目录下的文件流

  MODE_PRIVATE -- 只有当前应用能够访问,路人无法访问,并且如果之前有这个文件,再往里写入数据,数据会覆盖
  MODE_APPEND -- 只有当前应用能够访问,路人无法访问,并且如果之前有这个文件,再往里写入数据,数据会追加
  MODE_WORLD_READABLE -- 当前应用能够访问这个文件,另外其他应用可以读这个文件
  MODE_WORLD_WRITEABLE --  当前应用能够访问这个文件,另外其他应用可以写这个文件

4.android内部的文件访问权限:
            android底层是linux,沿用了linux的文件权限系统
            通过十个二进制位表示文件的权限
            1位表示类型 -- 文件 文件夹 超链接
            2--4 表示当前用户对当前文件的访问权限  可读 可写 可执行
            5--7 表示当前用户组中的用户对当前文件的访问权限 可读 可写 可执行
            8--10 表示其他用户(路人)对当前文件的访问权限 可读 可写 可执行


SharedPreferences -- 非常便于保存键值对信息,通常用来作为程序的配置信息存储的方式,本质是一个xml文件,保存在/data/data/[包名]/shared_prefs文件夹中
       例如保存音量大小
        创建Sharedprefrence :sp = getSharedPreferences("voiceConfig", MODE_PRIVATE);
        写入数据:
            Editor editor = sp.edit();
            editor.putXXX(name, value);
            editor.commit();
        读取数据:
            sp.getInt(name, defaultValue);

                sp = getSharedPreferences("voiceConfig", MODE_PRIVATE);
		cb_openVoice = (CheckBox) findViewById(R.id.cb_openVoice);
		sb_voice = (SeekBar) findViewById(R.id.sb_voice);
		/**
		 * 读取sp,如果有值,拿出来赋值
		 */
		boolean openVoice = sp.getBoolean("openVoice", false);
		cb_openVoice.setChecked(openVoice);
		int progress = sp.getInt("voice", 50);
		sb_voice.setProgress(progress);
		
		
		/**
		 * 用sp记录是否开启了声音
		 */
		cb_openVoice.setOnCheckedChangeListener(new OnCheckedChangeListener() {
			
			@Override
			public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
				Editor editor = sp.edit();
				editor.putBoolean("openVoice", isChecked);
				editor.commit();
			}
		});
		
		/**
		 * 用sp记录声音的大小
		 */
		sb_voice.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
			@Override
			public void onProgressChanged(SeekBar seekBar, int progress,boolean fromUser) {
				Editor editor = sp.edit();
				editor.putInt("voice", progress);
				editor.commit();
			}
			
			@Override
			public void onStopTrackingTouch(SeekBar seekBar) {
				// TODO Auto-generated method stub
				
			}
			
			@Override
			public void onStartTrackingTouch(SeekBar seekBar) {
				// TODO Auto-generated method stub
				
			}
			
		});



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值