
[Android开发]Android 程序的启动、卸载和分享
程序的启动、卸载和分享: 启动 /** * 开启一个应用程序 */ private void startApk() { PackageManager pm = getPackageManager(); try { // 原来的时候我们在得到...
程序的启动、卸载和分享: 启动 /** * 开启一个应用程序 */ private void startApk() { PackageManager pm = getPackageManager(); try { // 原来的时候我们在得到...
混淆器(ProGuard)通过删除从未用过的代码和使用晦涩名字重命名类、字段和方法,对代码进行压缩,优化和混淆。 修改project.properties # This file is automatically generated by ...
读取用户日志需要权限android.permission.READ_LOGS 在一个服务中开启logcat程序,然后读取 public void onCreate() { super.onCreate(); new Thread(){ pu...
Android系统在收到短信的时候会发送一条有序广播,我们如果定义一个接收者接收这个广播,就可以得到短信内容,也可以拦截短信。 定义广播接收者接收广播android.provider.Telephony.SMS_RECEIVED 需要接收短...
多线程下载 public class MultiThreadDownloader { private URL url; // 目标地址 private File file; // 本地文件 private long threadLen; /...
反编译: 资源文件获取Apktool 按照官网的指示配置完成后,执行apktool命令 apktool d xxx.apk // 如果提示-bash: /usr/local/bin/apktool: Permission denied cd...
黑名单挂断电话及删除电话记录: 挂断电话 挂断电话需要申请权限android.permission.CALL_PHONE 对于黑名单号码的来电如何挂断,由于监听来电时在TelephonyManager中进行监听的,在Android1.5之前...
横向ListView: /** * 自定义的一个水平方向的ListView,用法和ListView一样,也是去设置适配器(BaseAdapter的子类) */ public class HorizontialListView extends...
滑动切换Activity(GestureDetector): 实现手势滑动切换Activity 创建一个手势识别器(GestureDetector) 在Activity的onTouchEvent中去使用该手势识别器 public abstr...
Android系统中的联系人也是通过ContentProvider来对外提供数据的 数据库路径为:/data/data/com.android.providers.contacts/database/contacts2.db 我们需要关注的...
存储设备都是分块的,获取一共有多少块,然后算出来每一块的大小就能得到总的大小 File file = Environment.getExternalStorageDirectory();//获取SD卡的目录 StatFs statf = n...
获取手机中所有安装的程序: PackageManger 包管理者封装了当前应用程序的所有信息,可以通过包管理者拿到当前应用程序的所有信息。 PackageInfo 该类封装了应用程序清单文件中的所有信息。可以通过这个类拿到当前应用程序的版本...
获取位置(LocationManager): 需要申请权限 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> <uses-p...
开发中Log的管理: LogUtil是一个管理Log打印的工具类。在开发的不同阶段中通过对该类的控制来实现不同级别Log的打印。 public class LogUtil { public static final int VERBOSE ...
实现未捕捉异常处理器 public class MyExceptionHandler implements UncaughtExceptionHandler { private static final String TAG = "MyEx...
/** * 快捷方式工具类 */ public class ShortCutUtils { /** * 添加当前应用的桌面快捷方式 * * @param cx */ public static void addShortcut(Contex...
Toast提示只要提示的时间够长,就可以浮动到其他任何界面之上,所以我们可以模仿Toast来实现来电号码归属地的提示框 WindowManager: The interface that apps use to talk to the wi...
来电状态监听 public class MyService extends Service { private MediaRecorder mRecorder; private String num; @Override public vo...
虽然没有权限,但是也可以通过浏览器用Get方式来传递自己的数据,由于这样会打开浏览器,为了防止让用户看到, 所以我们可以再用户锁屏之后开始传递数据,而在用户一解除锁屏我们就回到桌面,这里用KeyguardManager来实现, 即在锁屏的时...
定义 内存泄露是指无用对象(不再使用的对象)持续占有内存或无用对象的内存得不到及时释放,从而造成的内存空间的浪费称为内存泄露。 原因 长生命周期的对象持有短生命周期对象的引用就很可能发生内存泄露,尽管短生命周期对象已经不...
基本概念 Px不同设备显示效果相同。这里的“相同”是指像素数不会变,比如指定UI长度是100px,那不管分辨率是多少UI长度都是100px。 也正是因为如此才造成了UI在小分辨率设备上被放大而失真,在大分辨率上被缩小。 Screen Siz...
Android中ActivityManager类似于Windows下的任务管理器,能得到正在运行程序的内容等信息 List<ActivityManager.RunningServiceInfo> getRunningServic...
手机摇晃 /** * 处理手机摇晃的监听 * * @author Administrator * */ public abstract class ShakeSensor implements SensorEventListener { /...
视频播放器页面音量控制Seekbar实现竖直的效果。竖直只是将Seekbar转了90度或-90度,我们可以把画布转一个角度,然后交给系统去画, 具体的做法就是重写ondraw()调整画布,然后调用super.onDraw()。 向上的See...
Android数据存储的几种形式: Internal StorageStore private data on the device memory. 通过mContext.getFilesDir()来得到data/data/包名/File目...