• [Android]编程注意事项


    1. 向Sdcard 写入数据时,必须在manifest中添加 sdcard 写入权限:

    在AndroidManifest.xml中加入访问SDCard的权限如下:

    <!-- 在SDCard中创建与删除文件权限 -->

    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>

    <!-- 往SDCard写入数据权限 -->

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

    2.开启读写权限

    adb shell mount -o remount rw /
    注意,/表示的是根目录,因此这个不仅仅是对sdcard,其他文件也可以读写。rw表示读写权限,mount重挂载文件系统

    3.读写命令

    文件传输:pc机与模拟机之间的文件传输可以使用adb pull 和adb push

    adb pull是把文件从模拟机上复制到pc机上,使用方法如下

    1. adb pull < remote> < local>

    其中remote代表模拟机文件路径,local为pc机文件路径。

    如:adb pull /system/app/test.apk /home/myname/test.apk

    adb push则相返,是把文件从pc机上复制到模拟机上,push可以把任务文件都复制到模拟机上,如果是把一个apk文件上传到/system/app/下则和adb install作用一样。使用方法

    1. adb push < local> < remote>

    4.性能跟踪工具traceview使用

    在MainActivity中加入以下代码:

    ///////////////////

    //开始追踪方法

    Debug.startMethodTracing("test");

    //要跟踪的方法

    ........

    //停止跟踪方法

    Debug.stopMethodTracing();

    ////////////////////

    存储在SDcard根目录中,把test.trace  pull到PC端,启用SDK.../tools/traceview.bat脚本,读取该文件

    5.解决Eclipse"Failed to create the Java Virtual Machine"

    今天在启动Eclipse,发现弹出提示框“ Failed to create the Java Virtual Machine”
    解决方法如下: 找到eclipse目录下的eclipse.ini,可以看到如下内容:

    -startup
    plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar
    --launcher.library
    plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.200.v20120522-1813
    -product
    com.android.ide.eclipse.adt.package.product
    --launcher.XXMaxPermSize
    256m
    -showsplash
    org.eclipse.platform
    --launcher.XXMaxPermSize
    256m
    --launcher.defaultAction
    openFile
    -vmargs
    -Dosgi.requiredJavaVersion=1.6
    -Declipse.buildId=v21.1.0-569685
    -Xms40m
    -Xmx768m

    将最后一行的-Xmx512m/768m改成-Xmx256m保存即可。
    打开寻找初始化。虚拟机为java永久生成对象(Permanate generation)如,class对象、方法对象这些可反射(reflective)对象分配内存限制设置(原768m/512m,设置为256m)

    6. 输入adb shell 时 提示error: more than one device and emulator

    第一种情况:确实用多个设备或者模拟器
      解决办法:(指定连接某一个设备或者模拟器)
    1、获取模拟器/设备列表

       adb devices

    2、指定device来执行adb shell

        adb -s devicename shell

    例如:

      adb -s emulator-5554 shell

    在多device的时候,执行adb命令一般都需要用参数-s指定device。例如卸载emulator-5554上的包com.soft.camera     adb -s emulator-5554 uninstall com.soft.camera

    第二种情况下:确实有一个设备或者模拟器(之所以显示有多个是因为此设备用过两次 使用命令 adb devices 会看到这个设备有两种状:offline 和 device)
       解决办法:
      一般办法:在命令窗口输入adb start-server 重新启动adb.exe服务
      如果上述方法不可以,终极方法:打开任务栏,选择“进程”选项卡,找到adb.exe进程,结束之,重新启动就完事OK啦(或者在命令窗口输入命令adb kill-server )

  • 相关阅读:
    Java 线程池原理分析
    基于 Java NIO 实现简单的 HTTP 服务器
    Java NIO之选择器
    Java NIO之套接字通道
    Django【基础篇-1】
    paramiko_sftp封装
    python random模块生成随机验证码
    Python3 os与sys模块用法
    python生成器并行实例
    python装饰器无参及有参案例
  • 原文地址:https://www.cnblogs.com/webapplee/p/3771714.html
Copyright © 2020-2023  润新知