网上视频,手机卫士看完的总结。。

来源:互联网 发布:遗传算法的优缺点 编辑:程序博客网 时间:2024/05/01 09:10

辞掉了手机软件测试的工作的,一边去上课,一边自己看视频自学,下面一些总结。


1,PackageManager获取APP的版本名称,版本号,包名,图标,应用名称等。


2,APP更新版本的时候,包名和签名一定要一致。(签名一致,包名不同:生成两个apk,包名是应用的唯一性标志签名不同,包名一致:覆盖安装失败)。


3,下载完APP可以把,下载的路径传过去,让它启动安装界面

        Intent it=new Intent("android.intent.action.VIEW");        it.addCategory("android.intent.category.DEFAULT");        it.setDataAndType(Uri.fromFile(file),        "application/vnd.android.package-archive");        startActivityForResult(it,0);

4,自定义组合控件,可以吧想要组合的View放在一个XML的布局文件里,然后创建一个java类用inflate加载成一个VIew,然后把你想要实现的功能在java文件里面写好
想要像android提供的VIew那样可以自定义属性的话,要自己定义一个命名空间,然后在Values的目录下创建一个attrs的XML文件然后在里面定义:

<resources><declare-styleable name="com.example.freedomsalt.SettingItems">    <attr name="destitle" format="string"/>    <attr name="desoff" format="string"/>    <attr name="deson" format="string"/></declare-styleable></resources>

name:输入的一定要是你所定义的java类的包名加java文件的名称。
然后在调用这个组合控件的XML文件使用的命名空间,把后面的android改成组合控件的全类名(包名+类名)
要做回调的话,可以自己提供一个接口在外面调用。


5,LocationManager 可以为我们提供定位的功能,因为我们的地图都是经过火星坐标加密的,所以我们获取的坐标无法直接获取到我们精确的位置,可以在网上找一些
开源的API把我们获取到的坐标经过加密,然后在去获取位置。


6,DevicePolicyManager,一键锁屏,一键清理数据的功能都是同过这个设备管理来获取的,如果想要卸载一个开启了设备管理器的APP,必须先关掉它的权限在能卸载。


7,TelephonyManager 可以监听我们电话的状态,从而进行拦截,现在想要拦截电话要通过A。IDL文件来支线,现在Google现在已经把直接挂掉电话的功能设置成需要系统的权限才能使用
实现挂掉电话的功能的时候一定要记得删除通话记录,找到通话记录所在数据库对应的表。
TelephonyManager,还可以获得手机一些相关信息,硬件信息,产地等很多信息。


8,可以在其他APP上显示的悬浮框,可以通过查看TOAST 的show();方法的源码来模仿实现:

WindowManager.LayoutParams params = new WindowManager.LayoutParams();                params.height = WindowManager.LayoutParams.WRAP_CONTENT;                params.width = WindowManager.LayoutParams.WRAP_CONTENT;                params.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE                        | WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE                        | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON;                params.format = PixelFormat.TRANSLUCENT;                params.type = WindowManager.LayoutParams.TYPE_TOAST;                params.setTitle("Toast");                wm.addView(view, params);

想要实现拖拽的功能就实现ONTOUCH 的方法监听,然后重现设置他的边距。


9,.ProcessManager 可以找到我们正在运行的进程


10 创建快捷方式,发送一条广播

<receiver            android:name="com.android.launcher2.InstallShortcutReceiver"            android:permission="com.android.launcher.permission.INSTALL_SHORTCUT">            <intent-filter>        <!--广播如果要接受,必须匹配action-->                <action android:name="com.android.launcher.action.INSTALL_SHORTCUT" />            </intent-filter>        </receiver>

11,清楚缓存,通过反射的方式调用PackageManager 里的方法freeStorageAndNotify()清除所有APP的缓存,要清除特定的APP的缓存需要系统级别的权限,所以只能通过包名调到
系统清除缓存的页面来清理。


12,ActivityManager 可以获取我们的任务栈,


跑马灯(文件不停的滚动)的实现
ellipsize :省略点的位置,ellipsize的属性设置成:marquee
获取焦点: focusablezhe设置成true,focusableInTouchMod,用手触摸的时候也能获取焦点
marqueeRepeatLimit设置成marquee_forever可以让他无限滚动


  • 只写了前面一部分的代码
    GitHub:https://github.com/598704784/freedomslaf/tree/master/freedomsalt
0 0
原创粉丝点击