(1)Android APK安装后不在桌面生成快捷方式图标
大家知道在Android系统的手机安装APK应用后会在桌面上生成此APK的快捷方式,用户通过直接点击可以进入此应用程序。但作为开发人员,我们有时候并不希望在安装APK完成后生成快捷方式,而是通过先进入某个应用程序,然后在此应用程序中进入另一个应用程序,那么该怎么在安装完APK后不生成桌面快捷方式呢?
打开AndroidMainfest.xml文件:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.ok"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.ok.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
在这里只要将activity中的“<category android:name="android.intent.category.LAUNCHER" />”去掉便可防止在安装完APK后生成桌面快捷方式。
(2)
01-01 21:39:06.344: E/AndroidRuntime(2387): Caused by: java.lang.ClassCastException: android.app.Application cannot be cast to cn.com.shine.hospital.television.TVRootApp
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:name=".TVRootApp"
>
出现这个的错误原因就是在manifest.xml文件中没有加
android:name=".TVRootApp"
这句话
一定要把name写正确,如果写错误,可能会出现
Android中java.lang.ClassNotFoundException: ***.**** in loader dalvik.system.PathClassLoader
逆推之,如果出现上述错误,可以查看是否是manifest.xml中name写错
(3)
向Android模拟器中push文件时出现Failed to push xx on emulator-5554: Read-only file system错误
这说明该文件夹无读写权限,那么就得对该文件夹进行mount
命令为:
mount -o remount,rw /system
即可
(4)Avoid using "px" as units; use "dp" instead
android开发当中,在为应用程序布局时,用到了:
android:textSize="24px"
这时发现编译器警告:
Avoid using "px" as units; use "dp" instead
google让我们避免使用px单位了,这是因为px单位大小始终是固定的,而dp单位的大小却可以随着屏幕的大小而改变,所以使用dp可以使应用程序适应任何尺寸的屏幕而不改变UI比例的大小。
在android的xml布局当中,经常会看到dip、dp、px、sp等单位,知道它们的作用才可以更加精确的布局UI。
dip:英文device independent pixels(设备独立像素)。所有的设备都有一个统一的dip大小(480*320),就是说,android的dip就是把屏幕的高分成了480个dip,宽分成了320个dip,每个dip在高中表示屏幕的1/480,在宽中表示屏幕的1/320。这样做的好处显而易见,我们可以使应用UI在不同大小的屏幕上都能正常的显示。
dp:完全等同于dip。
px:pixels,就是绝对像素。大小固定,不会随着屏幕不同而改变。
sp:scaled pixels,放大像素,主要用于字体显示,也是为了字体显示可以适应不同大小尺寸的屏幕。
(5)Android命令行截屏screencap
Android下面使用命令行截图。
因为工作调试用的机器,没法连接USB,所以用不了一般的截图方法,后来查了一下,Android4.0以后都内置了截图命令。
可以使用下面命令截取屏幕。
screencap /mnt/card/test.png
这是我在linux shell下执行的命令
执行完就可以把当前屏幕图片保存到SD卡里面(具体路径根据你实际开发机器来看)
除了screencap,还有screenshot,不过试验后,发现截图都是空白的,网上查资料是可以用来截图。
也可能是我这边机器环境问题。