Android类动态加载技术

 

Android应用开发在一般情况下,常规的开发方式和代码架构就能满足我们的普通需求。但是有些特殊问题,常常引发我们进一步的沉思。我们从沉思中产生顿悟,从而产生新的技术形式。

如何开发一个可以自定义控件的Android应用?就像eclipse一样,可以动态加载插件;如何让Android应用执行服务器上的不可预知的代码?如何对Android应用加密,而只在执行时自解密,从而防止被破解?……

熟悉Java技术的朋友,可能意识到,我们需要使用类加载器灵活的加载执行的类。这在Java里已经算是一项比较成熟的技术了,但是在Android中,我们大多数人都还非常陌生。

类加载机制

       Dalvik虚拟机如同其他Java虚拟机一样,在运行程序时首先需要将对应的类加载到内存中。而在Java标准的虚拟机中,类加载可以从class文件中读取,也可以是其他形式的二进制流。因此,我们常常利用这一点,在程序运行时手动加载Class,从而达到代码动态加载执行的目的。

       然而Dalvik虚拟机毕竟不算是标准的Java虚拟机,因此在类加载机制上,它们有相同的地方,也有不同之处。我们必须区别对待。

       例如,在使用标准Java虚拟机时,我们经常自定义继承自ClassLoader的类加载器。然后通过defineClass方法来从一个二进制流中加载Class。然而,这在Android里是行不通的,大家就没必要走弯路了。参看源码我们知道,AndroidClassLoaderdefineClass方法具体是调用VMClassLoaderdefineClass本地静态方法。而这个本地方法除了抛出一个“UnsupportedOperationException”之外,什么都没做,甚至连返回值都为空。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android Studio中,动态布局是指在运行时根据特定条件或用户输入来动态地更改应用程序的布局。这种布局方式允许应用程序根据不同的屏幕尺寸、设备方向或其他因素来自适应地调整界面。 要实现动态布局,可以通过以下步骤进行操作: 1. 创建布局文件:首先,在res/layout文件夹中创建一个XML布局文件。这个文件将作为应用程序的初始布局。 2. 使用布局容器:在布局文件中使用适当的布局容器(如LinearLayout、RelativeLayout等)来容纳其他视图元素。 3. 设置视图属性:根据需要,在布局容器中添加视图元素(如按钮、文本框等),并为它们设置相应的属性,如宽度、高度、位置等。 4. 使用代码修改布局:在Java代码中,可以使用布局管理器来动态地更改布局。通过获取对布局容器的引用,可以添加、删除或修改其中的视图元素。 例如,可以使用以下代码将一个新的按钮添加到LinearLayout布局中: ```java LinearLayout layout = findViewById(R.id.myLinearLayout); // 获取对LinearLayout的引用 Button button = new Button(this); // 创建一个新的按钮 button.setText("动态按钮"); // 设置按钮文本 layout.addView(button); // 将按钮添加到LinearLayout中 ``` 通过这种方式,可以根据应用程序的需要动态地更改布局,以适应不同的条件或用户输入。 请注意,动态布局的实现还涉及到处理屏幕旋转、设备尺寸变化等情况时的布局更新和适配。在处理这些情况时,可以使用适配器模式、响应式布局等技术来简化开发过程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值