




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
手机卫士讲师:杨光福Day12102_Android下屏幕适配_251、 创建两个屏幕2.7的240*320系统2.3模拟器和屏幕3.7的480*800系统2.3模拟器 2、 分别运行在模拟器上;240*320上演示功能一遍;320*480 上演示功能一遍;480*800 上演示功能一遍;3、 解决设置中心在240*320显示不完整问题;外面套上ScrollView里面在有LinearLayout代码如下: 运行演示看效果。以后布局文件比较长,无法显示的话就可以采用这种方式;4、 在480*800模拟器上演示一遍;在开发过程中,使用线性布局和相对布局可以解决大多数屏幕适配问题;对于小屏幕,内容过多,超出屏幕,可以采用外边包裹ScrollView。5、 屏幕的dip转换成px;A:进入程序管理器,分别在不同屏幕手机上点击某一条。B:用size.exe工具量一下,距离左边都是60像数,所以在不同屏幕上显示有不匹配问题。我们希望不同手机分辨率显示的比例类似的。dip或者dp:是屏幕宽高跟屏幕分辨率的一个比值;手机屏幕越大分辨率越大;手机屏幕越少,分辨率就越小。Android里面所有在代码里写的宽和高都是像数px单位。density 密度/根据的手机的分辨率把60dip,转换成不同值的px; /* * 根据手机的分辨率从 dip 的单位 转成为 px(像素) */ public static int dip2px(Context context, float dpValue) final float scale = context.getResources().getDisplayMetrics().density; return (int) (dpValue * scale + 0.5f); int px = DensityUtil.dip2px(getApplicationContext(), 60);System.out.println(px);popupWindow.showAtLocation(parent, Gravity.LEFT+ Gravity.TOP, px, location1);运行在各个模拟器上显示看效果并查看日志;以后在代码里需要写宽和高的地方,就可以用该工具转换一下,可以在不同屏幕手机上显示对应比例效果了。103_广告平台的使用_261、简单介绍,并进入平台万普广告:/?f=yangguangfu 友盟有米多盟酷果2、 下载sdkd3、 演示在各个平台上传了的软件4、 演示广告demeo5、 嵌入到手机卫士;104_应用程序的混淆_361、做软件的方向A、男人好色类;-拔裙子B、女人爱美类;-美图秀秀。C、老人类;-BIG Launcher或者智能桌面D、创意游戏-愤怒的小鸟,会说话的汤姆猫E、养生保健-春雨医生 2、 反编译很容易得到布局文件切换目录:C:UsersAdministratorcd /d D:手机卫士day9apktool拷贝手机卫士到该目录。反编译命令:apktool d D:手机卫士day9apktoolmobilesafe.apk就可以得到资源文件;资源文件如何加密呢?使用ApkEntTool工具加密加密后解压需要密码了。这方式可以保护资源文件,但这种是能简单保护。对应程序员,如果同样用ApkEntTool是可以解密的。这种方式是假加密,只是修改文件的特征码,让window系统上的解压软件都认为apk有密码,其实并没有密码。只是欺骗了这些软件,这种方式是一种伪加密;3、如何代码加密代码才是应用程序的核心东西;A:使用Smali2JavaUI.exe打开看我们写的手机卫士;能看到写的代码;B:然后在用Smali2JavaUI.exe该工具打开其他软件360或者金山手机卫士;C:给自己工程加密查看工程里的perties文件;# This file is automatically generated by Android Tools.# Do not modify this file - YOUR CHANGES WILL BE ERASED!# This file must be checked in Version Control Systems.# To customize properties used by the Ant build system edit# perties, and override values to adapt the script to your# project structure.# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):#proguard.config=$sdk.dir/tools/proguard/proguard-android.txt:proguard-project.txt#这个文件是Android工具自动生成。#不要修改这个文件您的更改将被删除!#这个文件必须在版本控制系统检查。#定制的蚂蚁使用的属性构建系统编辑#“蚂蚁。属性”,和覆盖值适应剧本到你#项目结构。为了使移位收缩和混淆你的代码,取消这个(可用属性:sdk.dir,家庭用户。):#proguard.config=$sdk.dir/tools/proguard/proguard-android.txt:proguard-project.txtuncomment 取消、obfuscate 混淆 、shrink 收缩、把这个:#proguard.config=$sdk.dir/tools/proguard/proguard-android.txt:proguard-project.txt修改成:proguard.config=proguard-android.txt并且把D:adt-bundle-windows-x86-20131030sdktoolsproguardproguard-android.txt文件拷贝到工程根目录;签名后才代码混淆,然后签名打包是报错,如果解决呢?proguard-android.txt在里面加上: keep public class cn.waps.* *;-keep public interface cn.waps.* *;-dontwarn cn.waps.*打包成功后,再用反编译工具查看代码;4、 混淆的原理打包成功后,工程多了一个目录proguard混淆后的APK比原来的APK要小。把混淆前的APK和混淆后的都解压看一下classes.dex各自的大小;打工工程proguard目录的:mapping.txt文件混淆原理:在编译成字节码的时候,对类名还有方法名 进行动态的替换;例如:Student student = new Student();-aPublic void shudentEnglishWhenAtTime(long time)-bstudent.shudentEnglishWhenAtTime(24);student.shudentEnglishWhenAtTime(1);a.b(24);a.b(1);mapping.txt这个文件包含了对应关系,该文件千万别弄丢。5、混淆常见问题拷贝任意一个jar到工程里面,签名报错。解决方案在proguard-android.txt文件里添加:-dontwarn .*-keep class .* *; 例如:-dontwarn net.htmlparser.jericho.*-keep class net.htmlparser.jericho.* *; 105_应用程序的数据统计_331、 模拟一个bug.在开发阶段解决问题很容易,看日志就知道什么问题;如果是用户玩的话,用户不知道什么原因。2、 如果把应用的异常抓到。A:创建新类MobileSafeApplication 继承Application它代表整个应用程序,使用它需要在功能清单文件配置;Base class for those who need to maintain global application state. You can provide your own implementation by specifying its name in your AndroidManifest.xmls tag, which will cause that class to be instantiated for you when the process for your application/package is created.对于那些需要维护全局应用程序状态的基类。你可以通过在你的AndroidManifest.xml指定其名称提供自己的实现。XML 的标签,这将导致这类被实例化时为您为您的应用程序/包创建过程。B:在功能清单文件配置点击Application -name -Browser 实现Application的onCreate和onTerminate()方法onCreate说明Called when the application is starting, before any other application objects have been created. Implementations should be as quick as possible (for example using lazy initialization of state) since the time spent in this function directly impacts the performance of starting the first activity, service, or receiver in a process. If you override this method, be sure to call super.onCreate().当应用程序开始之前,任何其他应用程序对象被创建。实现应该尽可能快的(用状态延迟初始化例如)由于直接影响花在这个函数的时间性能开始活动,服务,或接收器的过程中。如果你重写此方法,一定要打电话oncreate()超。整个应用程序初始化,在应用程序的其他对象被初始化前调用的方法。onTerminate方法说明This method is for use in emulated process environments. It will never be called on a production Android device, where processes are removed by simply killing them; no user code (including this callback) is executed when doing so.该方法用于仿真加工环境。它永远不会被称为一个生产Android设备,进程,通过简单地杀死他们删除;没有用户代码(包括这个回调函数执行时)。当进程结束的时候被回调。Overridepublic void onCreate() super.onCreate();/处理没有捕获的异常Thread.setDefaultUncaughtExceptionHandler(new MyUncaughtExceptionHandler();private class MyUncaughtExceptionHandler implements UncaughtExceptionHandler/当产生了为捕获的异常回调Overridepublic void uncaughtException(Thread thread, Throwable ex) System.out.println(捕获了一个异常);运行演示,看日志。private class MyUncaughtExceptionHandler implements UncaughtExceptionHandler/当产生了为捕获的异常回调Overridepublic void uncaughtException(Thread thread, Throwable ex) System.out.println(捕获了一个异常);/把自己杀死,会重新创建进程android.os.Process.killProcess(android.os.Process.myPid();运行演示,看进程id有变化。C:把日志保存起来private class MyUncaughtExceptionHandler implements UncaughtExceptionHandler/当产生了为捕获的异常回调Overridepublic void uncaughtException(Thread thread, Throwable ex) try System.out.println(捕
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026届陕西省宝鸡市扶风县八年级物理第一学期期末检测模拟试题含解析
- 适航检测2025年行业规范对中小企业合规经营指导报告
- 2026届江苏省汇文实中学物理八年级第一学期期末质量检测试题含解析
- 2026届湖南长沙青竹湖湘一外国语学校物理八年级第一学期期末综合测试模拟试题含解析
- 2026届山东省郯城县红花镇初级中学物理八上期末考试模拟试题含解析
- 广东省广州各区2026届物理八上期末教学质量检测试题含解析
- 2026届山东省泰安岱岳区六校联考八年级物理第一学期期末调研模拟试题含解析
- 2026届广东省揭阳市榕城区一中学物理八年级第一学期期末复习检测试题含解析
- 铜渣贫化电炉项目可行性研究报告
- 药房票据文件管理办法
- DB61T 5113-2024 建筑施工全钢附着式升降脚手架安全技术规程
- 施工安全教育内容
- 2025年化学检验工职业技能竞赛参考试题库(浓缩500题)
- 小学生育儿心得课件
- 电信人工智能学习考试题(附答案)
- 肝门部胆管癌诊断和治疗指南(2025版)解读课件
- 急诊危重症患者转运专家共识解读课件
- 《发芽小麦粉气流分级产品及其面筋蛋白品质的研究》
- 《手术室感染与预防》课件
- 医院美容科管理规章制度(3篇)
- 皮肤镜课件教学课件
评论
0/150
提交评论