首页 > 编程技术 > android

Android监听应用程序安装和卸载实现程序

发布时间:2016-9-20 20:00

Android监听应用程序安装和卸载实现程序,有需要的同学可参考一下。
 代码如下 复制代码

package com.rongfzh.yc;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;

public class BootReceiver extends BroadcastReceiver{
     
    @Override 
    public void onReceive(Context context, Intent intent){
        //接收安装广播
        if (intent.getAction().equals("android.intent.action.PACKAGE_ADDED")) {  
            String packageName = intent.getDataString();  
            System.out.println("安装了:" +packageName + "包名的程序");    
        }  
        //接收卸载广播 
        if (intent.getAction().equals("android.intent.action.PACKAGE_REMOVED")) {  
            String packageName = intent.getDataString();  
            System.out.println("卸载了:"  + packageName + "包名的程序");
 
        }
    }
}

第二

、 修改AndroidManifest.xml配置文件,添加广播介绍,添加监听的权限

 代码如下 复制代码

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.rongfzh.yc"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="7" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:name=".PakDetectActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <receiver android:name=".BootReceiver" 
                  android:label="@string/app_name">  
            <intent-filter> 
             <action android:name="android.intent.action.PACKAGE_ADDED" /> 
             <action android:name="android.intent.action.PACKAGE_REMOVED" /> 
              <data android:scheme="package" /> 
            </intent-filter> 
        </receiver> 
    </application>
    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.RESTART_PACKAGES"/> 
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>

</manifest>

3、运行程序,卸载一个程序ApiDemos程序打印日志如下
 System.out(1513): 卸载了:package:com.example.android.apis包名的程序
4、安装腾讯微博,打印日志如下:
System.out(1513): 安装了:package:com.tencent.WBlog包名的程序
 
程序监听成功。

现在手机刷新是一件再常见不过的事情了,本文章来介绍关于htc g12手机刷新的详细教程。
  1. 1、首先确认自己的机子是不是SHIP S-OFF的,能否刷机跟ROOT(获取最高管理员权限)无关
    目前只有S-OFF才可以随意刷机。 S-ON的朋友可以等待官方解锁或者花金子去找JS 。(现在已经可以软解了)
    如何查看是不是SHIP S-OFF:
    完全关机后按音量减键+电源键进入HBOOT
    注意:如果不确定完全关机最好把电池拿出来一下
    进入HBOOT后看手机的第一行有没有SHIP S-OFF的字样,有就行了。
    (退出HBOOT方法:HBOOT下面按电源然后进入fastboot了,然后音量键调整到reboot。 )

     
  2. 2、下载刷机软件Recovery和ROM系统
    Recovery 最新CWM Recovery4.0.0.5(英文版)
    ROM :zk7513153 纯sense3.0第一版适合日常使用,快速
    什么是recovery?
    ——recovery 就是你用 home 键+开机键 开机后能进入的一个界面(工程模式),在这个界面你可以直接用sd 卡上的zip 的rom 升级或者备份你的系统,老版本的recovery 只有三个选项,无法备份系统,只能用update.zip这个文件名的文件升级,不能用任何文件名的zip文件升级。新版本已经多出很多选项可以供你操作。
    ——此外,一般刷rom 之前最好wipe一下(wipe只是抹除rom 意外的个人数据,不会影响rom 本身),也就是返回出厂设置一下比较好,但是这样就会丢失你的所有软件,短信彩信,联系人(备份在google上没有关系)和设置等等,备份或者不wipe 都可以。
     
  3. 3、准备工作
    先准备好一张存储卡,在电脑上把存储卡格式化成FAT32格式,一定要这个格式。
    然后把下载下来刷机软件Recovery和ROM系统和系统复制到存储卡里
    注意,下载下来不用解压缩
    把刷机软件的名字改成:PG88IMG.zip
    ROM系统的名字是:只要不是中文就行。在机锋论坛或其他知名论坛下载的一般不用更改。
    为了避免在有些网站下载的ROM可能出现名称不规范的问题,请注意核对好名字和后缀。
    不能更改后缀的 在计算机-文件夹选项-去掉 隐藏已知文件类型的扩展名
     
  4. 4、安装刷机软件Recovery
    把存储卡放进手机后开机,按音量减键+电源键进入HBOOT 之后等待几秒。
    这个时候手机会自动搜索Recovery并询问是否更新,最后 让你选择 UP YES / DOWN NO 按音量上键确定,软件就会自动更新更新完之后会提示press <power> to reboot (按电源键重新启动)
    重新启动后进入系统把存储卡里面的刷机软件删掉,也就是把PG88IMG.zip这个删掉 ,不然再次进入HBOOT 还会提示更新!
    可以直接在手机上的文件管理器删除 也可以连接电脑删除,总之。。我们的目的就是删掉他~~~
    HBOOT界面 :5、刷系统
    把刷机软件从存储卡里删掉后完全关机,按音量减键+电源键进入HBOOT 不确定完全关机的机油可以扣电池。
    进入HBOOT后选择第二项recovery进入刷机系统(应为黑色背景。黄色字体)
    期间会有振动,然后出现这里讲下刷机系统的按键功能:
      音量键,控制进行上下选择
      电源键,为确定
      音量下+电源键,重启手机
      音量上+电源键,关闭recovery界面的字符串显示
    会看到以下选项
    -reboot system now 重启系统
    -apply sdcard:update.zip 使用SD卡根目录的update.zip更新系统
    -wipe data/factory reset 清空data分区并恢复出厂设置
    -wipe cache partition 清空cache分区
    -install zip from sdcard 从SD卡选择文件更新系统
    -backup and restore 备份和恢复
    -mounts and storage 挂载和存储
    -advanced 1)选择Wipe DATA/Factory reset(清除内存)会进入选择界面,一堆NO 只有一个是YES 。。。你猜选择那个? ---对的,当然选择YES ,选择YES以后会自动清除 然后返回上一界面。
    2)继续选择-wipe cache partition 同样一堆NO。。选择其中的YES。结束后会自动返回上一界面。
    3)选择Install zip from SDCARD进入后会有大概5个选项然后再选择choose zip from sdcard
    这时会出来几个选项 其中一个是你刚刚下载的ROM包的名字 ,后缀是.zip选择后依然在一堆NO里选择YES
    会自动从SD卡刷入ROM包,进度条到头完成后在弹出选项中选择 GO BACK 然后再选择REBOOT的 即可、
    刷机后第一次进入新系统会很慢,属于正常情况,不要着急。
    好了 新的系统刷好了
  5. 如果上面教程大家不清楚,我推荐你可以参考一下 http://www.111cn.net/help/android/18851.html 本文章。
    刷新包:http ://u.115.com/file/aq2zoe2q
现在Android系统刷新是常见的事情,但是经常因为刷新使用手机变铁的,下面我们来解决一个问题安卓手机刷机后无信号的解决方法

解决方法:
  没信号,激活问题:

  菜单左键---》常规设置---》无线和网络设置---》移动网络设置---》CDMA订阅(切换到RUIM/SIM模式),然后把手机切换到飞行模式,最后切换飞行模式,即可激活

  出现漫游符:进入RE管理器,找到system——app——找到stk.apk安装即可

  彩信问题:

  "打开apn设置,因为大多选择的接入点是ctnet,所以打开ctnet设置,设置如下:

  在MMSC里面写:http://mmsc.vent.mobi 彩信代理写:10.0.0.200 彩信端口选:80

  这就为ctnet设置了彩信代理,就可以使选择ctnet联网方式照常接收彩信

  卡在开机画面:

  一般卡在开机画面都是由于没有进行双清操作,你可以试着在每次刷机前进行双清

 

如果上面方法还是不行,大家自有再刷一次机了哦。

本文章来介绍一下Android手机开发之图片内存优化几点,有需要的朋友可参考。

1、将图片转化为缩略图再加载:

 代码如下 复制代码
1 BitmapFactory.Options options = new BitmapFactory.Options();
2 options.inSampleSize = 2;
3 Bitmap img = BitmapFactory.decodeFile("/sdcard/1.png", options);

该段代码即是读取1.png的缩略图,长度、宽度都只有原图片的1/2。图片大小减少,占用的内存自然也变小了。这么做的弊端是图片质量变差,inSampleSize的值越大,图片的质量就越差。由于各手机厂商缩放图片的算法不同,在不同手机上的缩放图片质量可能会不同。笔者就遭遇过moto手机上图片缩放后质量可以接受,三星手机上同样的缩放比例,质量却差很多的情况。

 

2、用ARBG_4444颜色模式加载图片:

Android中有四种,分别是:

ALPHA_8:每个像素占用1byte内存

ARGB_4444:每个像素占用2byte内存

ARGB_8888:每个像素占用4byte内存

RGB_565:每个像素占用2byte内存

Android默认的颜色模式为ARGB_8888,这个颜色模式色彩最细腻,显示质量最高。但同样的,占用的内存也最大。

 代码如下 复制代码
1 BitmapFactory.Options options = new BitmapFactory.Options();
2 options.inPreferredConfig = Bitmap.Config.ARGB_4444;   
3 Bitmap img = BitmapFactory.decodeFile("/sdcard/1.png", options);

以上代码即是将1.png以ARGB_4444模式读出。内存减少虽然不如第一种方法明显,但是对于大多数图片,看不出与ARGB_8888模式有什么差别。不过在读取有渐变效果的图片时,可能有颜色条出现。另外,会影响图片的特效处理。

 

3、调用图片的recycle()方法:

这个其实不是真正降低图片内存的方法。主要目的是标记图片对象,方便回收图片对象的本地数据。图片对象的本地数据占用的内存最大,而且与程序Java部分的内存是分开计算的。所以经常出现Java heap足够使用,而图片发生OutOfMemoryError的情况。在图片不使用时调用该方法,可以有效降低图片本地数据的峰值,从而减少OutOfMemoryError的概率。不过调用了recycle()的图片对象处于“废弃”状态,调用时会造成程序错误。所以在无法保证该图片对象绝对不会被再次调用的情况下,不建议使用该方法。特别要注意已经用setImageBitmap(Bitmap img)方法分配给控件的图片对象,可能会被系统类库调用,造成程序错误。

 

4、使用Matrix对象放大的图片如何更改颜色模式:

虽然使用Matrix对象放大图片,必定会耗费更多的内存,但有时候也不得不这样做。放大后的图片使用的ARGB_8888颜色模式,就算原图片是ARGB_4444颜色模式也一样,而且没有办法在放大时直接指定颜色模式。可以采用以下办法更改图片颜色模式。

 

 代码如下 复制代码
Matrix matrix = new Matrix();
float newWidth = 200;//图片放大后的宽度
float newHeight = 300;//图片放大后的长度
matrix.postScale(newWidth / img.getWidth(), newHeight/ img.getHeight());
Bitmap img1 = Bitmap.createBitmap(img, 0, 0, img.getWidth(), img.getHeight(), matrix, true);//得到放大的图片
img2 = img1.copy(Bitmap.Config.ARGB_4444, false);//得到ARGB_4444颜色模式的图片
img = null;
img1 = null;

这里比起原来的图片额外生成了一个图片对象img1。但是系统会自动回收img1,所以实际内存还是减少了。

 

修改Android手机的hosts地址,需要对手机root,因为要修改system目录下的文件,文章最后面我们讲述了获取hosts列表的做法.

第一步:使用adb下载手机端的hosts文件,在Windows下打开命令提示行,切换到C:目录下。
C:>adb pull /system/etc/hosts
这样,便将手机端的hosts文件下载到Windows的C盘根目录下,先不要关闭命令提示行窗口。


第二步:复制https://smarthosts.googlecode.com/svn/trunk/hosts页面的所有内容,推荐使用notepad++打开下载回来的hosts文件,然后将内容粘贴到hosts文件中,保存。


第三步:在手机端打开rootexplorer,我想使用Android并且root过的手机都会有rootexplorer吧,打开后进入system目录,将权限更改为可读写。


第四步:切回到命令提示行窗口输入如下内容将hosts文件回传到手机中。
C:>adb push hosts /system/etc/

这里再介绍一下 如何获取hosts列表呢?

 

https://smarthosts.googlecode.com/svn/trunk/hosts
通过上面这个地址,本来这是一个开源项目,叫做smarthosts,但是已经出于某种原因停止更新了。
该程序也可以修改电脑上的hosts地址。

标签:[!--infotagslink--]

您可能感兴趣的文章: