‘壹’ android dex分包和插件化是一个概念吗
对于 Android 来说是 DexClassLoader,如下
DexClassLoader pluginClassLoader = new DexClassLoader(dexPath, optimizedDirectory, libraryPath, parentClassLoader);
可动态加载的内容包括 apk、dex、jar 等
也利用这个原理及开源项目实现了一个版本,并且整理了 Android 插件化的作用、概念以及不错的资料(包括开源项目)和解决方案。
其中包括 65535 问题,Android 插件化、Android 组件化、Android 动态加载、Android 动态升级;介绍 DexClassLoader 和 PathClassLoader 的区别;如何解决生命周期管理、资源访问问题,如何消除公共依赖。
‘贰’ 关于android studio开发中布局文件分包问题
没问题的,你改完如果引用不成功就点击build选项卡clean一下project
‘叁’ Android app的渠道包是什么意思
1、渠道包:
渠道包指的是在各大应用市场,发布的apk包的清单文件中,某个meta-data标签下,配置的value不一样,这个标签的作用就是用来区分是哪个市场的,比如你发布到360.这个值就是你就可以配置成360,豌豆荚就可以配置成wandoujia,那么这么配置的作用是干嘛的?很简单,就是用来做统计的,比如我们项目中用的是友盟统计,它可以统计用户从哪个平台下载了你们的app,从而更好的掌握用户的操作习惯。所以,如果app没有统计功能的需求,你只需要打一个同样的包,直接发布到各个平台即可,根本不用关心什么渠道。
2、首发渠道包的含义我并不理解,字面的意思可能是说
在同一个apk版本中,有些渠道平台拥有优先体验最新版本的权限,那么这些平台就是首发平台,之后过了一个星期,才将这个apk发布到另外一些的平台。
3、抓包
首先要明白,抓包和渠道包没有半点关系。
抓包指的是我们在请求服务器的时候,发出去的所有请求我都可以直观的看到,包括请求的地址,请求头,请求体,以及服务器返回的结果:响应头,响应体等等。这个从不可见到直观可见的抓取过程,才是抓包。
抓包的主要作用是方便与服务端人员的配合。Windows比较好用的抓包工具是Filder,OS可以使用Charles(收费)。
‘肆’ android里面根包与根包底下的其他包有什么关系
android里面的包就是指文件夹,像你上面说的这个包,在文件夹路径中就是:/com/android_lean/Text,分包的好处就是将源码分类,便于管理和维护
‘伍’ android应用程序结构xml文件按功能分包
如下图所示,animhi动画文件,drawable用来放图片,形状,选择器文件,drawable-hdpi-v4到drawable-xxxhdi-v4都是放置大小不同的图片,为了适配更多的手机,layout是界面布局文件,menu是菜单文件
‘陆’ 安卓怎么做先下一部分包,再下另一部分
大型游戏有两部分,一部分后缀名为.apk的安装包,另一部分放解压后放在SD卡的根目录,比如gameloft的游戏数据包就放在SD卡gameloft/games里面然后直接安装主程序就行了
‘柒’ Android开发有MVC的框架吗Android 开发该怎么分包
现在都使用mvp进行android开发。
详细例子请参考android学习手册,360手机助手中可以下载,里面有108个android例子,源码文档都可在里面看,里面有详细介绍这个的框架。
MVP模式是什么?MVP 是从经典的模式MVC演变而来,它们的基本思想有相通的地方:Controller/Presenter负责逻辑的处理,Model提供数据,View负责显示。
MVC和MVP的区别?
为什么会出现MVP模式呢?这是因为原有的MVC模式有一些短板。比如在android开发中,activity充当着MVC中Controller的角色,但是在实际开发中处理view的逻辑和角色。当业务界面复杂时我的activity会显得很庞大。于是出现了MVP模式,它新增了一个Presenter角色用于处理数据和界面的模型以及逻辑,Activity仅仅用于展示界面和用户交互,这样就解决了MVC中角色不清的局面。
所以,MVP与MVC的重大区别:在MVP中View并不直接使用Model,它们之间的通信是通过Presenter (MVC中的Controller)来进行的,所有的交互都发生在Presenter内部,而在MVC中View会直接从Model中读取数据而不是通过 Controller。
在MVC里,View是可以直接访问Model的!从而,View里会包含Model信息,不可避免的还要包括一些业务逻辑。 在MVC模型里,更关注的Model的不变,而同时有多个对Model的不同显示,即View。所以,在MVC模型里,Model不依赖于View,但是View是依赖于Model的。不仅如此,因为有一些业务逻辑在View里实现了,导致要更改View也是比较困难的,至少那些业务逻辑是无法重用的。
MVC模式结构
Model 业务逻辑和实体模型
Controller 对应Activity
View 视图以及布局文件
MVP模式结构
Model: 业务逻辑和实体模型
View:用户交互和视图显示,在android中对应activity
Presenter: 负责完成View于Model间的逻辑和交互
小节:MVP模式相当于在MVC模式中又加了一个Presenter用于处理模型和逻辑,将View和Model完全独立开,在android开发中的体现就是activity仅用于显示界面和交互,activity不参与模型结构和逻辑,
####实战
谷歌官网给了我们一个MVP模式实战的例子,它是一个类似记事本的app,源码地址在:https://github.com/googlesamples/android-architecture
官方案例的框架图如下:
‘捌’ android studio怎么分包
这里只做Android Studio分包配置简单的介绍。
第一步:
在Gradle build文件中做如下配置:
android {
compileSdkVersion 21
buildToolsVersion "21.1.0"
defaultConfig {
...
minSdkVersion 14
targetSdkVersion 21
...
// Enabling multidex support.
multiDexEnabled true
}
...
}
dependencies {
compile 'com.android.support:multidex:1.0.0'
}
添加两句代码:
(1)multiDexEnable true
(2)compile 'com.android.support:multidex:1.0.0'
第二步:
在AndroidManifest.xml文件中做如下配置:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.android.multidex.myapplication">
<application
...
android:name="android.support.multidex.MultiDexApplication">
...
</application>
</manifest>123456789123456789
如果你要定义自己的Application,或者已经有了自定义Application,那么不需要在application节点中用android.support.multidex.MultiDexApplication,而是用自己的Application类的全名即可,而且自定义的Application也不需要继承MultiDexApplicatoin。
第三步:
如果有自定义的Application,那么在自定义的Application类中,重写attachBaseContext(),并且在其中调用super.attachBaseContext(),然后调用MultiDex.install(this) ,然后在该方法上加上@Override注解,既然是重写方法,最好加上这个注解,不过Android Studio会自动加上。
有两点可以注意:
attachBaseContext()是在ContextWrapper类中的。而MultiDexApplication继承Application,就是如第二步一样重写了attachBaseContext()方法。
不需要另外在libs中添加android-support-multidex.jar,否则会报异常。
‘玖’ 用友盟做安卓渠道统计可以不分包么
APP统计的渠道还是较多的,从方式来讲一般有俩种: 常规的用户安装、访问、卸载等统计,可以考虑主流的网络统计、腾讯统计、友盟统计等 用户行为的统计,需要APP开发环节配合服务端进行行为触发记录进行统计
‘拾’ android eclipse怎么分包
http://blog.csdn.net/jxst431833/article/details/50684221这个CSDN上面有说