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

 更新时间:2016年9月20日 20:00  点击:2153
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--]

相关文章

  • C#开发Windows窗体应用程序的简单操作步骤

    这篇文章主要介绍了C#开发Windows窗体应用程序的简单操作步骤,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-04-12
  • Android子控件超出父控件的范围显示出来方法

    下面我们来看一篇关于Android子控件超出父控件的范围显示出来方法,希望这篇文章能够帮助到各位朋友,有碰到此问题的朋友可以进来看看哦。 <RelativeLayout xmlns:an...2016-10-02
  • Android开发中findViewById()函数用法与简化

    findViewById方法在android开发中是获取页面控件的值了,有没有发现我们一个页面控件多了会反复研究写findViewById呢,下面我们一起来看它的简化方法。 Android中Fin...2016-09-20
  • Android模拟器上模拟来电和短信配置

    如果我们的项目需要做来电及短信的功能,那么我们就得在Android模拟器开发这些功能,本来就来告诉我们如何在Android模拟器上模拟来电及来短信的功能。 在Android模拟...2016-09-20
  • 夜神android模拟器设置代理的方法

    夜神android模拟器如何设置代理呢?对于这个问题其实操作起来是非常的简单,下面小编来为各位详细介绍夜神android模拟器设置代理的方法,希望例子能够帮助到各位。 app...2016-09-20
  • android自定义动态设置Button样式【很常用】

    为了增强android应用的用户体验,我们可以在一些Button按钮上自定义动态的设置一些样式,比如交互时改变字体、颜色、背景图等。 今天来看一个通过重写Button来动态实...2016-09-20
  • Android WebView加载html5页面实例教程

    如果我们要在Android应用APP中加载html5页面,我们可以使用WebView,本文我们分享两个WebView加载html5页面实例应用。 实例一:WebView加载html5实现炫酷引导页面大多...2016-09-20
  • 深入理解Android中View和ViewGroup

    深入理解Android中View和ViewGroup从组成架构上看,似乎ViewGroup在View之上,View需要继承ViewGroup,但实际上不是这样的。View是基类,ViewGroup是它的子类。本教程我们深...2016-09-20
  • Android自定义WebView网络视频播放控件例子

    下面我们来看一篇关于Android自定义WebView网络视频播放控件开发例子,这个文章写得非常的不错下面给各位共享一下吧。 因为业务需要,以下代码均以Youtube网站在线视...2016-10-02
  • Android用MemoryFile文件类读写进行性能优化

    java开发的Android应用,性能一直是一个大问题,,或许是Java语言本身比较消耗内存。本文我们来谈谈Android 性能优化之MemoryFile文件读写。 Android匿名共享内存对外A...2016-09-20
  • Android设置TextView竖着显示实例

    TextView默认是横着显示了,今天我们一起来看看Android设置TextView竖着显示如何来实现吧,今天我们就一起来看看操作细节,具体的如下所示。 在开发Android程序的时候,...2016-10-02
  • 将c#编写的程序打包成应用程序的实现步骤分享(安装,卸载) 图文

    时常会写用c#一些程序,但如何将他们和photoshop一样的大型软件打成一个压缩包,以便于发布....2020-06-25
  • android.os.BinderProxy cannot be cast to com解决办法

    本文章来给大家介绍关于android.os.BinderProxy cannot be cast to com解决办法,希望此文章对各位有帮助呀。 Android在绑定服务的时候出现java.lang.ClassCastExc...2016-09-20
  • Android 实现钉钉自动打卡功能

    这篇文章主要介绍了Android 实现钉钉自动打卡功能的步骤,帮助大家更好的理解和学习使用Android,感兴趣的朋友可以了解下...2021-03-15
  • Android 开发之布局细节对比:RTL模式

    下面我们来看一篇关于Android 开发之布局细节对比:RTL模式 ,希望这篇文章对各位同学会带来帮助,具体的细节如下介绍。 前言 讲真,好久没写博客了,2016都过了一半了,赶紧...2016-10-02
  • Android中使用SDcard进行文件的读取方法

    首先如果要在程序中使用sdcard进行存储,我们必须要在AndroidManifset.xml文件进行下面的权限设置: 在AndroidManifest.xml中加入访问SDCard的权限如下: <!--...2016-09-20
  • Android开发之PhoneGap打包及错误解决办法

    下面来给各位简单的介绍一下关于Android开发之PhoneGap打包及错误解决办法,希望碰到此类问题的同学可进入参考一下哦。 在我安装、配置好PhoneGap项目的所有依赖...2016-09-20
  • 用Intel HAXM给Android模拟器Emulator加速

    Android 模拟器 Emulator 速度真心不给力,, 现在我们来介绍使用 Intel HAXM 技术为 Android 模拟器加速,使模拟器运行度与真机比肩。 周末试玩了一下在Eclipse中使...2016-09-20
  • Android判断当前屏幕是全屏还是非全屏

    在安卓开发时我碰到一个问题就是需要实现全屏,但又需要我们来判断出用户是使用了全屏或非全屏了,下面我分别找了两段代码,大家可参考。 先来看一个android屏幕全屏实...2016-09-20
  • Android开发中布局中的onClick简单完成多控件时的监听的利与弊

    本文章来为各位介绍一篇关于Android开发中布局中的onClick简单完成多控件时的监听的利与弊的例子,希望这个例子能够帮助到各位朋友. 首先在一个控件加上这么一句:and...2016-09-20