• 手机卫士13_屏幕适配_异常处理_盈利模式_混淆加密


      今天是手机卫士最后一天

      

    1,简易屏幕适配:

    ①使用线性,相对,帧布局,这三种常用布局在所有设备上几乎可以完整实现,多使用dp,sp,不要使用像素,dp,sp会自动适应屏幕

    ②浮动窗体显示的距离问题:show出来的距离就是像素,所以显示距离不会适应屏幕.

    代码里接收的单位一般都是像素.

    解决方式:把输入的数字转换成dp单位.

    得到像素密度*像素 获得dp数据,根据屏幕实现的像素效果

    通过工具类去转换成dp数据DesityUtils

    2,应用程序的异常处理:

    2.1

    alpha版本:小范围的内部测试,BUG会比较多,不稳定

    beta版本:比较稳定.可以考虑发布到市场上了

    稳定版本,正式版:基本上没有BUG

    2.2

    应用程序弹出对话框,停止运行.

    重写对话框,在对话框弹出来之前就获取到异常放到文件中

    ①创建一个类:应用程序类,继承Application

    配置清单文件application界面,选择name标签,配置这个继承类即可

    onCreate()//在应用程序创建之前执行的第一个方法,适合做应用程序初始化操作.

    //重写系统的异常处理器.

    Thread.currentThread().getDefaultUncaughtExceptionHandler()//获取当前默认的未捕获异常的异常处理器,弹出一个异常停止的对话框

    Thread.currentThread().setUncaughtExceptionHandler(UncaughtExceptionHandlerhandler);

    ③实现这个异常handler,重写方法就可以捕获异常消息

    但是虚拟机依然会挂掉,这个是没办法的,不过可以多执行几行代码,把异常写到日志里

    然后杀死掉当前进程(不然会一直卡在界面上)早死早超生,内存充足的情况下还会重启.

    android.os.Process.KillProcess(android.os.Process.myPid());//只能杀掉自己的pid进程

    ④应用程序异常的信息处理

    在重写方法里的参数Throwable ex,保存有错误的信息

    ex.printStackTrace(ps);//把异常信息写到打印输出流里

    PrintWriter pw = new PrintWriter(字符串输出流);//把信息写到字符串输入流里

    StringWriter sw = new StringWriter(); sw.toString()//可以获取字符串

    可以把这个sw代表的错误信息写到文件里

    ⑤只有错误信息还不够

    还需要:产生错误的时间System.currentTimeMillis();

      手机操作系统的信息Build,利用反射获取,getDeclaredFields();//获取字段

    //遍历每一个字段,field.getName(); //字段名

    field.get(对象,静态可以为null) //字段代表的值

    友盟:开发者服务平台,里面有异常捕获的JAR包 更专业一些

    3,安卓的盈利模式

    3.1 付费软件(一般比较少,go桌面,带有自定义主题)

           增值服务(一般游戏里出现)

      免费应用,通过广告流量赚钱

    广告平台:百度移动联盟,有米等

    获取到广告平台的JAR,查看平台发布的帮助文档.里面介绍很详细的

    4,应用程序的加密混淆

    project.properties文件中,打开config内容config = ${sdk}xx路径

    Sdk 下这个文件proguard-android.txt

    把这个文件拷贝到项目下,然后修改config指定的文件名即可

    然后导出apk(数字签名XXXX),这样生成的apk就是加密混淆过的

    原理:生成apk文件的时候把类名和方法名进行动态的修改(反正系统又不看名字,名称只是为了程序员方便编写而已)

  • 相关阅读:
    数据库设计
    vs2013怎么删除代码前的小箭头
    win 7系统自带的截图工具在哪里?如何使用?
    SQL Server不允许保存更改
    多个分组中取每个分组中最新的一条数据
    批量向数据库多张表导入数据的实现
    判断字符串是只是数字
    Mac下查看端口占用情况
    Mac上使用Docker Desktop安装Kubernetes
    关于Lombok框架子类继承时EqualsAndHashCode注解的callSuper取值的思考
  • 原文地址:https://www.cnblogs.com/adventurer/p/5617043.html
Copyright © 2020-2023  润新知