当前位置: 首页 > news >正文

邯郸市住房和城乡建设网站电商网站开发目的

邯郸市住房和城乡建设网站,电商网站开发目的,wordpress 只显示一个主题,京津冀协同发展四区指的是作为Android开发者我们都知道Android应用方法数65535这样一个限制#xff0c;这是因为在Android系统中#xff0c;方法的id使用short类型存储在Dex文件中#xff0c;而short类型的取值范围是-32,768到32,767#xff0c;因此导致Android应用方法数65535这样一个最大限制这是因为在Android系统中方法的id使用short类型存储在Dex文件中而short类型的取值范围是-32,768到32,767因此导致Android应用方法数65535这样一个最大限制超过这个方法是打包就会失败也可以使用MultiDexApplication来解决但这不是最优的解决方案也可是用插件化来解决这个问题(稍后我会分享插件化)个人觉得最好是在开发中尽量避免这样的问题。1.为什么要减少方法数这要从dex的文件格式说起在把源码编译、转化为dex文件格式时dex文件中会有一个区域包含了所有源码中定义或引用的方法列表。这个区域中所有方法项的总数就是方法数。Android在刚开始被设计的时候这一区域的方法数量不能超过65536个也就是2个字节表示的范围。当源码定义或引用的方法数量超过了这个限制的话就会导致编译不成功你说重要不重要呢2.如何查看这些方法dexdump 命令查看apk的method总数  dexdump  -f  app.apk | grepmethod_ids_size查看apk的field总数dexdump  -f  app.apk | grepfield_ids_size查看apk的method详情  dexdump -f  app.apk可以使用修改过的dexdump。标准的dexdump可以解析方法列表但无法打印出来修改版的dexdump可以打印这些信息如下是一个简单类LogicActivity中使用的方法Class: Lcom/xxx/activity/LogicActivity; 18Method: ()VMethod: access$000 (Lcom/xxx/activity/LogicActivity;)Lcom/xxx/app/AppInterface;Method: access$100 (Lcom/xxx/activity/LogicActivity;)Lcom/xxx/app/AppInterface;Method: addFriend (Ljava/lang/String;ILjava/lang/String;)VMethod: addObserver (Lcom/xxx/app/BusinessObserver;)VMethod: finish ()VMethod: getIntent ()Landroid/content/Intent;Method: getString (I)Ljava/lang/String;Method: getTitleBarHeight ()IMethod: joinTroop ()VMethod: onActivityResult (IILandroid/content/Intent;)VMethod: onCreate (Landroid/os/Bundle;)VMethod: onDestroy ()VMethod: removeObserver (Lcom/xxx/app/BusinessObserver;)VMethod: setLastActivityName ()Ljava/lang/String;Method: setResult (ILandroid/content/Intent;)VMethod: startActivity (Landroid/content/Intent;)VMethod: startActivityForResult (Landroid/content/Intent;I)V可以看出这里面的方法是包含代码中引用的方法的如finish()getIntent()这些方法。3.减少方法数的办法以下所介绍的方法都可以在修改后用dexdump –j来观察、比较所修改的方法以及验证减少的效果。方法1 避免在内部类中访问外部类的私有方法/变量当在Java内部类(包括内部匿名类)中访问外部类的私有方法/变量时编译器会生成额外的方法这也会增加方法数建议编码时尽量避免。具体原因考虑如下的代码publicclassFoo{privateclassInner{void stuff(){Foo.this.doStuff(Foo.this.mValue);}}privateint mValue;publicvoid run(){InnerinnewInner();mValue 27;in.stuff();}privatevoid doStuff(int value){System.out.println(Value is value);}}虽然Java语言允许内部类直接访问外部类的方法但是虚拟机却认为Foo和Foo$Inner是两个不同的类为了支持Foo$Inner访问Foo的private成员编译器会生成两个额外的方法而生成的这些方法也算在方法总数里面/*package*/staticintFoo.access$100(Foo foo){return foo.mValue;}/*package*/staticvoidFoo.access$200(Foo foo,int value){foo.doStuff(value);}具体可以参考http://developer.android.com/training/articles/perf-tips.html#PackageInner解决办法很简单把mValue和doStuff()的private修饰符去掉就好了这样它的默认访问域为包级编译器就不需要生成额外的代码。方法2 避免调用派生类中的未被覆盖(override)的方法考虑下面的代码publicclass DemoActivity extends Activity {Overrideprotectedvoid onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);Intent intent getIntent();if (intent.getAction().equals(add)) {finish();}else {setContentView(R.id.background);}}}实际上它会生成5个方法除了定义的onCreate和构造函数之外还有setContentView、getIntent()和finish()。因为按照java的语义如果有覆盖父类的方法则会直接调用覆盖的方法。Class: Lcom/xxx/activity/DemoActivity; 5Method: ()VMethod: finish ()VMethod: getIntent ()Landroid/content/Intent;Method: onCreate (Landroid/os/Bundle;)VMethod: setContentView (I)V解决办法对于不需要被override的方法显式的改成调用父类的方法如下所示publicclass DemoActivity extends Activity {Overrideprotectedvoid onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);Intent intent super.getIntent();if (intent.getAction().equals(add)) {super.finish();}else {super.setContentView(R.id.background);}}}则实际在方法数列表中它只占2个方法Class: Lcom/tencent/mobileqq/activity/DemoActivity; 2Method: ()VMethod: onCreate (Landroid/os/Bundle;)V
http://www.zqtcl.cn/news/925142/

相关文章:

  • 威海 网站建设刚刚北京传来重大消息
  • 深圳返利网站开发做网站版权怎么写
  • 上传网站内容做社交电商第一步怎么做
  • 网站icp查询系统wordpress 页面 首页
  • wordpress安装教程wamp搜索引擎优化的英文缩写是什么
  • 成都旅行社网站建设网站建设包含哪些方面
  • 找不到网站后台怎么办韩国网站域名分类
  • 建设商务网站作用积极参与网站信息建设工作
  • 网站开发阶段Oss怎么做静态网站
  • 做科学小制作的视频网站怎么才能建立自己的网站啊
  • 跳蚤市场网站开发背景网站优点
  • 长春网站建设方案咨询怎么做自己的网站平台
  • 网站建设谈单技巧做网站建设科技公司
  • 品牌网站建设4a小蝌蚪网页设计分类
  • 域名注册以后会给你一个账户名密码上传做好的网站文化网站建设需要的功能
  • 企业站用wordpress做好吗那些做环保网站的好
  • 天津有哪些有名的网站建设公司商城网站模板免费
  • 安徽省途顺建设工程有限公司网站制作网站公
  • 北京建设职工大学网站成都网站建设比较好的公司
  • 网站建设品牌策wordpress怎么做企业网站
  • 网站正在建设中 html 模板医院网站建设预算表
  • 哪个网站能接施工图来做购物网站黑白
  • 网站开发课设心得企业宣传页模板
  • 中学生怎么做网站ghost 卸载wordpress
  • 网站诊断报告案例用户浏览网站的方式
  • 网站开发流程抚州做网站需要看的书
  • wordpress 禁止目录浏览网站seo推广优化
  • 源代码如何做网站高校门户网站建设需要多少钱
  • 深圳微商城网站制作报价基础网页设计教程
  • wordpress+vps建站大连网站建设运营