`
文章列表
在项目开发过程中,遇到这样的场景: 有写特殊Android设备只有一个USB口,当挂载U盘之后就无法连接USB实时进行调试了。这儿时候如果设备可以开启WiFi,那就可以用WiFi进行调试; 要开启网络调试,执行下面指令即可: "setprop service.adb.tcp.port 5555",// 设置监听的端口,端口可以自定义,如5554,5555是默认的 "stop adbd",// 关闭adbd "start adbd"// 重新启动adbd 但执行上述指令必须要有root权限,既先要执行 ...
项目中看到IOS上LIstView在显示隐藏一部分时有一个收缩的特效,但Android自带的没有。就想着能否自定义实现,下面是从项目中提取出来的Demo。 先上效果图: 点击每一行右边的图标显示隐藏; 一、自定义了ExpandableLayout是继承自LinearLayout: package com.jerome.expand; import android.content.Context; import android.util.AttributeSet; import android.view.View; import android.widget.LinearL ...
1、定义animation_list.xml <?xml version="1.0" encoding="utf-8"?> <animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="false" > <item android:drawable="@drawable/play_music_01" android:dur ...
一、背景:项目中APP需要常驻后台,但Android的LMK(low memory kill)会根据自己的算法在内存不足时清理一些进程。如何尽量不让LMK干掉自己的成呢? 二、调查: 参考一:http://bbs.csdn.net/topics/360088771#r_72861243 引用 Android 系统对于内存管理有自己的一套方法,为了保障系统有序稳定的运信,系统内部会自动分配,控制程序的内存使用。当系统觉得当前的资源非常有限的时候,为了保 证一些优先级高的程序能运行,就会杀掉一些他认为不重要的程序或者服务来释放内存。这样就能保证真正对用户有用的程序仍然再运行。如果你的 Servi ...
项目中需要在接收到来电之后把电话挂断,再做一些事情,在研究了Android源码以及参考了网络资料之后得出了如下方法: 1、定义并注册广播: public void onReceive(final Context context, Intent intent) { if (intent.getAction().equals(Intent.ACTION_NEW_OUTGOING_CALL)) { //去电,可以用定时挂断 } else { //来电 String state = intent.getStringExtra(TelephonyManager.E ...
对系统媒体库不了解的线看这儿: Android media媒体库分析之:MediaProvider http://gqdy365.iteye.com/blog/2150883 Android media媒体库分析之:调用系统媒体库完成指定媒体文件扫描 http://gqdy365.iteye.com/blog/2164836 先看一下要实现的效果: 上图是系统设置中分类别对文件所占空间的统计,项目中要统计媒体文件所占空间,于是研究了一下系统的做法,收获如下: 1、从源码packages/app/下找到settings工程,找到存储功能的实现,相关类有: com.android.se ...
转自:http://www.cnblogs.com/qianxudetianxia/archive/2012/05/14/2497073.html 在Android的应用开发中,我们会用到各种代码调试;其实在Android的开发之后,我们可能会碰到一些随机的问题,如cpu过高,内存泄露等,我们无法简单的进行代码调试,我们需要一个系统日志等等,下面我把握工作中碰到的几个常用命令和方法给大家演示实践一下。 1.logcat命令 这个命令最简单常用,可查看帮助,我不多说,如果需要打印时间,加参数-v time 1 adb logcat -v time 2.bugreport命令 这个命令也非常简 ...
之前文章中分析了Android media媒体库,详见:http://gqdy365.iteye.com/blog/2150883 这儿说一下怎么样在自己的应用程序调用系统提供的接口完成对指定媒体文件的扫描,约定: 指定的文件:就是指定路径的文件(filepath); 扫描:获取媒体的详细信息,比如一首歌曲的歌手名、时长、专辑名等。 先看一下简单的做法: MediaScannerConnection.scanFile(mContext, new String[]{lastPath}, null,new MediaScanCompletedListener(){ @Override ...
在项目中碰到这样的问题: 由于系统中的按键在底层做了重新定义或者新增了按键,此时需要在APP层对按键事件(keyevent)做分解处理,模拟Android系统做法,把keyevent分解成: 1、单击事件:就是普通key的单击; 2、双击事件:500 ...
在项目中这样的需求,在用户触发重置的时候需要清除自身APP中的数据,APP自身的数据存储在/data/data/packagename/目录下,如下图: lib目录下存储so库文件,不能清除,需清除其他目录下的文件; /** * 清除APP数据 */ private void clearData() { // final String path = "/data/data/" + getPackageName().toString(); final String path = getFilesDir().getParent(); ...
关于Protobuf的获取、用法见这篇文章:http://www.cnblogs.com/reborter/archive/2012/06/04/2535213.html 下面直接贴我的实例,工程在后面提供下载: 一、proto协议: package pbmsg; option java_outer_classname="UserProto";//生成.Java文件的名字 message User{ //要传输的数据定义,通常与实体类对应 required int32 id=1; required int64 id=2; //与lo ...
亲们,原创文章转载时请注明出处,谢谢! 在做Android媒体应用程序时(Audio、Image、Video)需要对Android的媒体提供者(MediaProvider)做详细的分析,下面记录一下我的收获: 一、获取MediaProvider: 该工程在系统源码的packages\provider ...
通过阅读源码,我们会发现: 1、它描述的是一个应用程序环境的信息,即上下文。 2、该类是一个抽象(abstract class)类,Android提供了该抽象类的具体实现类ContextIml。 3、Activity类 、Service类 、Application类本质上都是Context子类,Broadcast reseive中系统会传递一个Context进来; 4、程序中Context实例个数 = Service个数 + Activity个数 + 1(Application对应的Context实例) 5、注意context的生命周期,比如Android知识梳理:消息机制之Handler(ht ...
来源:http://www.cnblogs.com/shipengzhi/articles/2223100.html 引用 1.synchronized与static synchronized 的区别       synchronized是对类的当前实例进行加锁,防止其他线程同时访问该类的该实例的所有synchronized块,注意这里是“类的当前实例”, 类的两个不同实例就没有这种约束了。那么static synchronized恰好就是要控制类的所有实例的访问了,static synchronized是限制线程同时访问jvm中该类的所有实例同时访问对应的代码快。实际上,在类中某方法或某代 ...
一、项目中遇到这样一个问题: 音乐播放程序有Activity、Service构成,音乐播放在Service中完成。 现象1:在后台播放在线音乐时,前台程序快速滑动Listview,此时前台程序cpu占有率可达60%-80%,后台音乐播放程序cpu占有率1%-3%,但出现严重卡顿现象; 现象2:音乐播放程序在前台,在Service中播放在线音乐,在Activity中快速滑动Listview,此时音乐播放程序cpu占有率60%-80%,但播放没有卡顿现象; 上述现象是在Android 2.3版本上测试; 二、问题分析: 先看一下Android系统里面定义的进程优先级: 1.前台进程( FOREGR ...
Global site tag (gtag.js) - Google Analytics