- 浏览: 212884 次
- 性别:
- 来自: 上海
文章列表
android应用崩溃的调试方法
- 博客分类:
- android
From http://changxianli6121.blog.163.com/blog/static/56392130201312652555385/
有两种方法可以分析 crash 的堆栈信息
1 google提供了一个python脚本,可以从
http://code.google.com/p/android-ndk-stacktrace-analyzer/
下载这个python脚本,然后使用 adb logcat -d > logfile 导出 crash 的log,
使用 arm-eabi-objdump 位于build/prebuilt/linux-x86/arm-eabi ...
From:
addr2line,可以根据一个地址打印出对应的代码行
addr2line,输入一个地址,指定一个带-g编译的可执行程序,就可以打印出该地址对应的代码行。
其实gdb也有这个功能,不过addr2line的好处是,很多时候,bug很难重现,我们手上只有一份crash log。这样就可以利用addr2line找到对应的代码行,很方便。前提条件是:
1. 该可执行程序用-g编译,带调试信息(所谓调试信息就是代码和地址的一个对应关系的信息)。
2. 如果crash在一个so里面,那addr2line不能直接给出代码行。因为我们都知道,so里面的地址在可执行文件装载的时候,是可以被 rea ...
From: http://doublekj.blog.163.com/blog/static/146818474201171555942247/
在Android中,目前,我知道有两种出现锯齿的情况。 ① 当我们用Canvas绘制位图的时候,如果对位图进行了选择,则位图会出现锯齿。 ② 在用View的RotateAnimation做动画时候,如 ...
android copybit
- 博客分类:
- android
Android HAL consists of several hardware accelerated modules, and copybit is one of them implemented in G1 phone.
While OpenGL ES cannot be used or it's in software implementation, copybit is used. Actually in cupcake branch, SurfaceFlinger always uses copybit instead of GL if copybit is available ...
android\system\core\include\private\android_filesystem_config.h
Runtime.getRuntime().exec("chmod 777 "+abspath).waitFor();
exec = Runtime.getRuntime().exec("su -c "+abspath);
ContentResolver resolver = getContentResolver();
int userRotation = Settings.System.getInt(resolver, Settings.System.ACCELEROMETER_ROTATION, 0);
List<Sensor> list = sensorMgr.getSensorList(Sensor.TYPE_ACCELEROMETER);
关于intent调用
- 博客分类:
- android
关于intent调用
1.不同应用中
Intent intent = new Intent();
intent.setComponent(new ComponentName("com.sec.videobrowser", "com.sec.videobrowser.FloatVideo"));
2.同一个应用
intent.setClass(FloatVideo.this, Class.forName("com.sec.videoplayer.SecVideoPlayer"));
1.应用中调用系统级的方法,需要提高权限要在manifest中加android:sharedUserId="android.uid.system",
2.加了这个共享后,应用需要签名正确,所以在Android.mk上加 LOCAL_CERTIFICATE := platform
3.平台签名要和应用签名一样,否则应用安装时会报错,
build\target\product\security
no signatures that match those in shared user android.uid.system; ignoring!
4.加了这个权限就不能读写sdcar ...
抓取视频的一帧
- 博客分类:
- android
- multimedia
准确的抓取视频的一帧
public void captureFrame() {
try {
MediaMetadataRetriever mediaMetadataRetriever = new MediaMetadataRetriever();
mediaMetadataRetriever.setDataSource(getApplicationContext(), mUri);
Bitmap bitmap = mediaMetadataRetriever.getFrameAtTime((mSecVideoView.getCurrentPosition()) * 1000 ...
proguard 代码混淆
- 博客分类:
- android
1.在需要混淆的工程目录下(package/apps/下的工程)添加proguard.flags文件,该文件即为网络传说中的proguard.cfg,只是命名不一样而已,然后再Android.mk中添加如下两句:
LOCAL_PROGUARD_ENABLED := full
LOCAL_PROGUARD_FLAG_FILES := proguard.flags
上面的full 也可以是custom,如果不写这句,那还得添加如下一句:
TARGET_BUILD_VARIANT := user或者TARGET_BUILD_VARIANT := userdebug
这样后在工程目录下执行mm便可以 ...
import android.os.Parcel;
import android.os.Parcelable;
class VideoItem implements Parcelable {
long id;
String path;
String title;
String duration;
String folder;
String mimeType;
long size;
public VideoItem() {
// TODO Auto-generated constructor stub
}
public VideoItem(long id, Stri ...
public boolean isSystemApp(PackageInfo pInfo) {
return ((pInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0);
}
public boolean isSystemUpdateApp(PackageInfo pInfo) {
return ((pInfo.applicationInfo.flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) ...
Uri uri = Uri.parse("file://" + Environment.getExternalStorageDirectory());
sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_ALL, uri));
rtsp 信息包抓取
- 博客分类:
- multimedia
1. Download wireshark and install, start capture local ip.
2. Downlaod realplayer and play a rtst video.
3. Export capture package log from wireshark
- r w - r w - - - -
1 2 3 4 5 6 7 8 9 10
1:-代表文件,d代表目录
2,3:r w 代表可被当前应用读/写
4:是否可被运行,-否
5,6,7:同一组的应用是否可以对该文件进行读/写/运行
8,9,10:其他应用是否可以读/写/运行