art

Android ART运行时与Dalvik虚拟机

隐身守侯 提交于 2020-03-28 05:22:15
这几天在做一个项目时需要在Android中使用OSGi框架(Apache Felix),于是在一个android 4.4.2 版本系统的某品牌的平板上实验。 实验内容很简单:把felix包里的felix.jar包和一些bundles的jar包用android sdk里的dx及aapt工具转化为包含dex字节码的jar 包。这样使这些jar包能在Android上跑起来。(因为Android上使用的是在Dalvik虚拟机而不是标准的java虚拟机,所以“原生”的 jar包不能直接在Android上跑) 然后当我把所有的jar包转换后拷贝到已有的那台Android平板上运行它们时却报出这样的错误: java.lang.unsupportedOperationException: can`t load this type of class file. 当时还以为是jar包转换时出错了,然后删掉了所有的包,重新下载重新转换,不料还是报这样的错。 纠结了一天后,也想到可能是因为art与Dalvik模式的问题。于是把同样的jar包拷贝到自己的Android手机(4.4.4版本运行于dalvik模式)上居然顺利运行了。然后把手机调为art模式再次运行jar包就又报平板上的报出的错误。 ART(Android Runtime) ART 是一种执行效率更高且更省电的运行机制,ART模式在Android

Android Art Hook 技术方案

亡梦爱人 提交于 2020-03-28 05:20:27
Android Art Hook 技术方案 0x1 开始 Anddroid上的ART从5.0之后变成默认的选择,可见ART的重要性,目前关于Dalvik Hook方面研究的文章很多,但我在网上却找不到关于ART Hook相关的文章,甚至连鼎鼎大名的XPosed和Cydia Substrate到目前为止也不支持ART的Hook。当然我相信,技术方案他们肯定是的,估计卡在机型适配上的了。 既然网上找不到相关的资料,于是我决定自己花些时间去研究一下,终于黃天不负有心人,我找到了一个切实可行的方法,即本文所介绍的方法。 应该说明的是本文所介绍的方法肯定不是最好的,但大家看完本文之后,如果能启发大家找到更好的ART Hook方法,那我抛砖引坏话的目的就达到了。废话不多说,我们开始吧。 运行环境: 4.4.2 ART模式的模拟器 开发环境: Mac OS X 10.10.3 0x2 ART类方法加载及执行 在ART中类方法的执行要比在Dalvik中要复杂得多,Dalvik如果除去JIT部分,可以理解为是一个解析执行的虚拟机,而ART则同时包含本地指令执行和解析执行两种模式,同时所生成的oat文件也包含两种类型,分别是portable和quick。portable和quick的主要区别是对于方法的加载机制不相同,quick大量使用了Lazy Load机制,因此应用的启动速度更快,但加载流程更复杂

ubuntu servers

一个人想着一个人 提交于 2020-02-13 16:39:19
1.FTP ubuntu vsftpd server : http://wiki.ubuntu.org.cn/Vsftpd 51CTO 专题: vsftpd入门——安装、配置、案例与常见问题 : http://os.51cto.com/art/201008/222036.htm Ubuntu10.4 安装vsftpd 创建安全好用的FTP : http://hi.baidu.com/huleyin/blog/item/3c2145015f957b004afb517a.html 安全的FTP服务器 vsftpd简介: http://os.51cto.com/art/201008/221714.htm vsftpd on CentOS 5 : http://salomi.blog.51cto.com/389282/119937/ books in 51CTO category Linux : http://book.51cto.com/col/1213/ FTP setup in Ubuntu : http://blog.csdn.net/zs12344444/article/details/7269571 vsftpd参考小手册 : http://forum.ubuntu.org.cn/viewtopic.php?f=54&t=117505 2.DNS 52CTO Red Hat

绿洲作业第一周 - 美术Art work

假装没事ソ 提交于 2020-02-10 11:20:04
Dear parents, Please remind your child to learn and finish the work as follows from the art teacher: To continue what Year Three have been learning about Shading and how to use line and shadow to create 3D drawing. This is different example using the same elements to create a trick of the eye 3D effect . You may need to to practise several times before you succeed.看这个视频学习怎么利用线和阴影来画立体效果图。https://v.youku.com/v_show/id_XNDUzOTQwNjU1Ng==.html 来源: https://www.cnblogs.com/junewen2020/p/12290118.html

Android Art Gc - 概述

生来就可爱ヽ(ⅴ<●) 提交于 2020-01-11 02:03:48
基于Android Q源码: 1.GC 回收算法 GC目前只有四种基本方法: (1)Mark-Sweep Collection 标记清除算法 (2)Copying Collection 复制算法 (3)Mark-Compact Collection 标记-压缩算法 (3)Reference Counting 引用计数算法--未被art采用 目前art默认使用的GC方案: concurrent copying(CC) 并发复制算法 2.评价GC的指标 (1)吞吐量 throughput 管理的堆大小/GC总时长 (2)最大暂停时间 pause time 垃圾回收器运行时,应用程序的最大暂停时间 (3)堆(空间)使用效率 space overhead,决定堆使用效率因素:(1)头大小 (2)堆用法 对象是GC的基本单位,对象由头(header)和域(field)构成 头:对象的大小,对象的种类 域:指针和非指针两种 (4)访问的局部性 其他指标 (5)垃圾回收器负载 (6)垃圾回收频率 垃圾回收器多长时间运行一次。一般而言,频率越低越好,通常增大堆空间可以有效降低垃圾回收发生的频率,但是会增加回收时产生的停顿时间。 (7)反应时间 当一个对象成为垃圾后,多长时间内,它所占用的内存空间会被释放掉。 3. Art 中的GC回收器类型和设置方法 (1)编译配置设置默认回收器: 在/ art

android ART hook

喜欢而已 提交于 2020-01-04 05:36:12
0x00 前言 之前一直都是在Dalvik 虚拟机上在折腾,从Android 4.4开始开始引入ART,到5.0已经成为默认选择。而且最近看到阿里开源的 Dexposed 框架,已经提供了对于android art 模式下的 hook 支持,所以对照着android art 部分的源码和之前 liang 大牛放出了hook代码研究了一下ART模式下的hook原理,做个简单的整理。关于android ART 更详尽的部分 可以阅读csdn的博客专栏《老罗的android之旅》。 Android运行时ART执行类方法的过程分析 Android运行时ART加载类和方法的过程分析 Android运行时ART加载OAT文件的过程分析 0x01 ART ART是Android平台上的新一代运行时,用来代替dalvik。它主要采用了AOT(Ahead Of Time)的方法,在apk安装的时候将dalvikbytecode一次性编译成arm本地指令(但是这种AOT与c语言等还是有本质不同的,还是需要虚拟机的环境支持),这样在运行的时候就无需进行任何解释或编译便可直接执行。因为Dalvik执行的是Dex字节码,通过解释器执行。虽然Dalvik也会对频繁执行的代码进行jIT生成本地机器指令来执行,但毕竟在应用程序运行过程中将Dex字节码翻译成本地机器指令也会影响到应用程序本身的执行

The Art of Computer Programming

大兔子大兔子 提交于 2019-12-26 22:16:22
《计算机程序设计艺术》即《The Art of Computer Programming》是计算机领域里颠峰级的里程碑,加上国外人士对它的推崇,所以提起它的大名简直就象法律书籍中的宪法一样神圣。 Donald.E.Knuth(唐 纳德.E.克努特,中文名高德纳)是算法和程序设计技术的先驱者,是计算机排版系统TEX和METAFONT的发明者,他因这些成就和大量创造性的影响深 远的著作(19部书和160篇论文)而誉满全球。作为斯坦福大学计算机程序设计艺术的荣誉退休教授,他当前正全神贯注于完成其关于计算机科学的史诗性的七 卷集。这一伟大工程在1962年他还是加利福尼亚理工学院的研究生时就开始了。 Knuth教授获得了许多奖项和荣誉,包括美国计算机协会图灵奖(ACM Turing Award),美国前总统卡特授予的科学金奖(Medal of Science),美国数学学会斯蒂尔奖(AMS Steele Prize),以及1996年11月由于发明先进技术荣获的极受尊重的京都奖(KyotoPrize)。现与其妻Jill生活于斯坦福校园内。 如果你认为你是一名真正优秀的程序员……读Knuth的《计算机程序设计艺术》,如果你能读懂整套书的话,请给我发一份你的简历。--Bill Gates 引那位出名的王垠对TAOCP的评论: 本来早就想想写一个对于Knuth的The Art of Computer

ART与Dalvik

跟風遠走 提交于 2019-12-24 09:23:36
ART与Dalvik Dalvik Dalvik 是 Google 公司自己设计用于 Android 平台的 Java 虚拟机。它可以支持已转换为 .dex (即 Dalvik Executable )格式的 Java 应用程序的运行, .dex 格式是专为 Dalvik 设计的一种压缩格式,适合内存和处理器速度有限的系统。 Dalvik 经过优化,允许在有限的内存中同时运行多个虚拟机的实例, 并且每一个 Dalvik 应用作为一个独立的 Linux 进程执行。独立的进程可以防止在虚拟机崩溃的时候所有程序都被关闭。 很长时间以来, Dalvik 虚拟机一直被用户指责为拖慢安卓系统运行速度不如 IOS 的根源。 2014 年 6 月 25 日, Android L 正式亮相于召开的谷歌 I/O 大会, Android L 改动幅度较大,谷歌将直接删除 Dalvik ,代替它的是传闻已久的 ART 。 ART Android 4.4 提供了一种与 Dalvik 截然不同的运行环境 ART 支持, ART 源于 google 收购的 Flexycore 的公司。 ART 模式与 Dalvik 模式最大的不同在于,启用 ART 模式后,系统在安装应用的时候会进行一次预编译,将字节码转换为机器语言存储在本地, 这样在运行程序时就不会每次都进行一次编译了,执行效率也大大提升。 ART 使用

pytorch GAN生成对抗网络

风流意气都作罢 提交于 2019-12-05 09:45:08
import torch import torch.nn as nn from torch.autograd import Variable import numpy as np import matplotlib.pyplot as plt torch.manual_seed(1) np.random.seed(1) BATCH_SIZE = 64 LR_G = 0.0001 LR_D = 0.0001 N_IDEAS = 5 ART_COMPONENTS = 15 PAINT_POINTS = np.vstack([np.linspace(-1,1,ART_COMPONENTS) for _ in range(BATCH_SIZE)]) def artist_works(): a = np.random.uniform(1,2,size=BATCH_SIZE)[:,np.newaxis] paintings = a*np.power(PAINT_POINTS,2) + (a-1) paintings = torch.from_numpy(paintings).float() return Variable(paintings) G = nn.Sequential( nn.Linear(N_IDEAS,128), nn.ReLU(), nn.Linear(128,ART

【Gans入门】Pytorch实现Gans代码详解【70+代码】

天涯浪子 提交于 2019-12-05 09:44:17
简述 由于科技论文老师要求阅读Gans论文并在网上找到类似的代码来学习。 文章目录 简述 代码来源 代码含义概览 代码分段解释 导入包: 设置参数: 给出标准数据: 构建模型: 构建优化器 迭代细节 画图 全部代码: 参考并学习的链接 代码来源 https://github.com/MorvanZhou/PyTorch-Tutorial/blob/master/tutorial-contents/406_GAN.py 代码含义概览 这个大致讲讲这个代码实现了什么。 这个模型的输入为 :一些数据夹杂在 x 2 x^2 x 2 和 2 x 2 + 1 2x^2+1 2 x 2 + 1 这个两个函数之间的一些数据。这个用线性函数的随机生成来生成这个东西 输出: 这是一个生成模型,生成模型的结果就是生成通过上面的输入数据输出这样的数据来画一条曲线 我们每次只取15个在x方向上等距的点。然后画出这条曲线来。 经过学习之后,我们要求这个模型能自己画出一条在其中的曲线来。 当然,由于我们设置的区间是有弧线的,即区间的概率上是有偏差的。经过足够多的拟合,有较高的概率使得整个模型画出来的曲线也是一个弧线。 代码分段解释 导入包: import torch import torch . nn as nn import numpy as np import matplotlib . pyplot as