• 近日调试android,需要用到模拟器,一个个尝试过来,最终得到了最佳的方式.  前提条件:如前文平台搭建好后,并已正常生成APK. 环境:EClipse+jdk+adt 1, android 自带AVD 搭建 查看 ...

    近日调试android,需要用到模拟器,一个个尝试过来,最终得到了最佳的方式.

     前提条件:如前文平台搭建好后,并已正常生成APK.

    环境:EClipse+jdk+adt

    1, android 自带AVD 搭建

    查看 http://jingyan.baidu.com/article/a681b0ded7e7573b1943465b.html

    由于速度太慢,直接弃用。

    2.真机模拟

     *手机设定为USB调试模式,插到电脑。

    * 安装手机驱动,我的三星手机,从官网下载了一个,查看设备管理器,能找到自己手机并没有与手机相关的驱动没装,就可以了。

    *打开Eclipse,加载前文的测试项目。点击run-〉RunConfigurations-〉Android Application-〉New_configuratin->Target选择第一个选项,按下方run,就能找到你的手机,选择开始就可以了。后面Run你的项目,就直接能在手机上显示了,有时手机上会待机,切换手机屏幕即能看到

    用手机速度很快,但有时老用手机实在也麻烦。加之我的手机本身很慢,似乎也没太大优势。

    3.Genymotion

     最后终于找到了Genymotion,这个软件个人使用不收费,非个人使用是收费的,软件作者还是挺人性的。

      *https://www.genymotion.com/#!/download    在此网站注册。(一定要注册并激活才能下载和后续使用),下载带VirtualBox的版本,省得麻烦。

      下载完后,一路默认安装就行了。

    *安装完之后,打开软件,需要sign in之后才能看到YOUR virtual devices中的列表,我选择Samsung Galaxy S3后,程序内部开始下载,下载完后,点击start,虚拟器开始加载。加载还是需要一会。显示手机界面后,将APK,直接拖入运行,显示INSTALL_FAILED_CPU_ABI_INCOMPATIBLE。解决方法:

    http://filetrip.net/dl?4SUOrdcMRv  下载GenyMotion-ARM-Translation_v1.1.zip,下载完后,直接将zip文件直接拖到虚拟机中,中间点击ok就行了,提示安装成功后,重新开启虚拟机。再将APK拖到虚拟机中,运行成功。至此Genymotion安装成功。

    *EClipse中同上进入Target选择第二选项,Run。 编译程序,Run已经可以在我们的虚拟机中运行了。 Debug类似。

    至此整个调试平台搭建完成了,可以开工了。



      

       


    展开全文
  • Delphi XE7下如何创建一个Android模拟器调试? 1 2 3 4 5 6 7 分步阅读 利用Delphi XE7我们可以进行多种设备程序的开发,尤其是移动开发应用程序得到不断...

    Delphi XE7下如何创建一个Android模拟器调试?

     
    • Delphi XE7下如何创建一个Android模拟器调试?1
    • Delphi XE7下如何创建一个Android模拟器调试?2
    • Delphi XE7下如何创建一个Android模拟器调试?3
    • Delphi XE7下如何创建一个Android模拟器调试?4
    • Delphi XE7下如何创建一个Android模拟器调试?5
    • Delphi XE7下如何创建一个Android模拟器调试?6
    • Delphi XE7下如何创建一个Android模拟器调试?7
    分步阅读

    利用Delphi XE7我们可以进行多种设备程序的开发,尤其是移动开发应用程序得到不断地加强。在实际的Android移动程序开发中,如果我们直接用android真机直接调试是非常不错。一是速度快,二是针对特定机型更易发现问题。然而,在实际开发由于涉及Android系统版本、屏幕分辨率等等因素,我们是不可能全部找真机来调试的。因此我要可能需要使用Android模拟器作为目标平台上运行,并在电脑上测试Android应用程序。

    工具/原料

     
    • Delphi XE7
    • Android NDK

    方法/步骤

     
    1. 1

      为了方便开发人员的开发,Google提供了Android模拟器(也可以称为仿真器),它是一款Android虚拟设备(AVD),代表一个特定的Android设备。 我们通过利用它就可以很容易开发目标程序,而无须找一个真机才能开发。Delphi XE7在安装完后,并没有完全配置好这个Android模拟器,这就需要我们自己手动去配置。尽管这个不是很难,但对于一般开发人员也有可能在这里卡壳。下面让我们看看是如何做到的,也许能让你省下不少的工作时间。

    2. 2

      第一步,安装完Delphi XE7后我们新建一个移动应用程序项目,这时会发现右边的项目菜单栏中"Android"一项没有目标的仿真器或真实机子。

      Delphi XE7下如何创建一个Android模拟器调试?
    3. 3

      第二步,我们打开[Windows菜单]-->[所有程序]-->[Embarcadero RAD Studio XE7]-->[Android SDKs]-->[Android Tools],进入Android工具包设置。

      Delphi XE7下如何创建一个Android模拟器调试?
    4. 4

      第三步,进入 Android SDK manger管理界面后会自动检测SDK升级包,直接单击这个菜单[Install …]按钮。

      Delphi XE7下如何创建一个Android模拟器调试?
    5.  

      第四步,这时首先要把左下角的那个[Accept License]选上,意思是同意许可协议,然后单击这个菜单[Instal]按钮即可。

      Delphi XE7下如何创建一个Android模拟器调试?
    6.  

      第五步,根据工具选中的升级中自动下载并安装,我们无须理会。

      Delphi XE7下如何创建一个Android模拟器调试?
    7.  

      第六步,升级包安装完成,单击[Close]进行下一步操作。

      Delphi XE7下如何创建一个Android模拟器调试?
    8.  

      第七步,我们打开[Windows菜单]-->[所有程序]-->[Embarcadero RAD Studio XE7]-->[Android SDKs]-->[Android AVD Manager],进入仿真器管理界面。

      Delphi XE7下如何创建一个Android模拟器调试?
    9.  

      第八步,单击[New]这个按钮,新建一个Android模拟器设备。

      Delphi XE7下如何创建一个Android模拟器调试?
    10.  

      第九步,按下图的提示填写,内存请不要大于768Mb,SD卡必须小于1023Mb,同时要记得选上右下角那个GPU选项。最后单击[OK]确定。

      Delphi XE7下如何创建一个Android模拟器调试?
    11.  

      第十步,我们看到模拟建立成功了,然后我们单击[Start...]启动模拟器。

      Delphi XE7下如何创建一个Android模拟器调试?
    12.  

      第十一步,弹出提示确认框,在这时我们可以对模拟器调整,如不调整直接

      单击[Launch]按钮启动。

      Delphi XE7下如何创建一个Android模拟器调试?
    13.  

      第十二步,启过程中的示例以及启动完成看到的图形界面。

      Delphi XE7下如何创建一个Android模拟器调试?
      Delphi XE7下如何创建一个Android模拟器调试?
      Delphi XE7下如何创建一个Android模拟器调试?
    14.  

      我们再打开我们新建的移动项目程序,这时会发现Android设备下的目标就有了我们新建的这个模拟器。这时我们就可以畅游Android开发平台了。

       

    转载于:https://www.cnblogs.com/wxb-km/p/6780381.html

    展开全文
  • Delphi XE 10.2.3 连接网易Mumu模拟器,方便调试,提高效率!低版本的也可参照此文方法
  • 让DELPHI开发的安卓程序支持X86处理器运行
  • Delphi XE8详细安装教程

    2020-06-03 23:32:08
    Delphi XE8详细图文安装教程。 最新Delphi XE8支持Android 5.0开发,是跨平台开发的利器。
  • Android模拟器识别技术

    2018-08-23 21:01:10
    Android模拟器常常被用来刷单,如何准确的识别模拟器成为App开发的一个重要模块,目前也有专门的公司提供相应的SDK供开发者识别模拟器。 目前流行的Android模拟器主要分为两种,一种是基于Qemu,另一类是基于...

    Android模拟器常常被用来刷单,如何准确的识别模拟器成为App开发中的一个重要模块,目前也有专门的公司提供相应的SDK供开发者识别模拟器。 目前流行的Android模拟器大概分为两种,一种是基于Qemu,另一类是基于Genymotion(VirtualBox类),网上现在流行用一些模拟器特征进行鉴别,比如:

    • 通过判断IMEI是否全部为0000000000格式(>=6.0的国产ROM可能直接返回00000000000000,也要区分)
    • 判断Build中的一些模拟器特征值
    • 匹配Qemu的一些特征文件以及属性
    • 通过获取cpu信息,将x86的给过滤掉(真机一般都是基于ARM)

    不过里面的很多手段都能通过改写ROM或者Xposed作假,让判断的性能打折扣。其实,现在绝大部分手机都是基于ARM架构,其他CPU架构给忽略不计,模拟器全部运行在PC上,因此,只需要判断是运行的设备否是ARM架构即可。

    ARM与Simpled X86在架构上有很大区别,ARM采用的哈弗架构将指令存储跟数据存储分开,与之对应的,ARM的一级缓存分为I-Cache(指令缓存)与D-Cahce(数据缓存),而Simpled X86只有一块缓存,而模拟器采用的可以看做是Simpled-x86架构,如果我们将一段代码可执行代码动态映射到内存,在执行的时候,Simpled-X86架构上动态修改这部分代码后,指令缓存会被同步修改,而ARM修改的却是D-Cahce中的内容,此时I-Cache中的指令并不一定被更新,这样,程序就会在ARM与Simpled-x86上有不同的表现,根据计算结果便可以知道究竟是还在ARM平台上运行,为什么说模拟器采用的是Simpled-x86架构,拿QEMU来说,它采用了一些手段,主动保证了Self-Modifying Code的同步性,看QEMU对于Self-Modifying Code的处理:

    On RISC targets, correctly written software uses memory barriers and cache flushes, so some of the protection above would not be necessary. However, QEMU still requires that the generated code always matches the target instructions in memory in order to handleexceptions correctly.

    无论是x86还是ARM,只要是静态编译的程序,都没有修改代码段的权限,所以,首先需要将上面的汇编代码翻译成可执行文件,再需要申请一块内存,将可执行代码段映射过去,执行。
    以下实现代码是测试代码的核心,主要就是将地址e2844001的指令add r4, r4, #1,在运行中动态替换为e2877001的指令add r7, r7, #1,这里目标是ARM-V7架构的,要注意它采用的是三级流水,PC值=当前程序执行位置+8。通过arm交叉编译链编译出的可执行代码如下:

    8410:       e92d41f0        push    {r4, r5, r6, r7, r8, lr}
    8414:       e3a07000        mov     r7, #0
    8418:       e1a0800f        mov     r8, pc      // 本平台针对ARM7,三级流水  PC值=当前程序执行位置+8
    841c:       e3a04000        mov     r4, #0
    8420:       e2877001        add     r7, r7, #1
        ....
    842c:       e1a0800f        mov     r8, pc
    8430:       e248800c        sub     r8, r8, #12   // PC值=当前程序执行位置+8
    8434:       e5885000        str     r5, [r8]
    8438:       e354000a        cmp     r4, #10
    843c:       aa000002        bge     844c <out>
    .....
    

    如果是在ARM上运行,e2844001处指令无法被覆盖,最终执行的是add r4,#1 ,而在x86平台上,执行的是add r7,#1 ,代码执行完毕, r0的值在模拟器上是1,而在真机上是10。之后,将上述可执行代码通过mmap,映射到内存并执行即可,具体做法如下,将可执行的二进制代码直接拷贝可执行代码区,去执行

    void (*asmcheck)(void);
    int detect() {
            //可执行二进制代码
        char code[] =
            "\xF0\x41\x2D\xE9"
            "\x00\x70\xA0\xE3"
            "\x0F\x80\xA0\xE1"
            "\x00\x40\xA0\xE3"
            "\x01\x70\x87\xE2"
            "\x00\x50\x98\xE5"
            "\x01\x40\x84\xE2"
            ....
        // 映射一块可执行内存 PROT_EXEC
        void *exec = mmap(NULL, (size_t) getpagesize(), PROT_EXEC|PROT_WRITE|PROT_READ, MAP_ANONYMOUS | MAP_SHARED, -1, (off_t) 0);
        memcpy(exec, code, sizeof(code) + 1);
           //强制赋值到函数
        asmcheck = (void *) exec;
          //执行函数
        asmcheck();
        __asm __volatile (
        "mov %0,r0 \n"
        :"=r"(a)
        );
        munmap(exec, getpagesize());
        return a;
    }
    

    经验证, 无论是Android自带的模拟器,还是夜神模拟器,或者Genymotion造假的模拟器,都能准确识别。在32位真机上完美运行,但是在64位的真机上可能会存在兼容性问题,可能跟arm64-v8a的指令集不同有关系,也希望人能指点。为了防止在真机上出现崩溃,最好还是单独开一个进程服务,利用Binder实现模拟器鉴别的查询。

    另外,对于Qemu的模拟器还有一种任务调度的检测方法,但是实验过程中发现不太稳定,并且仅限Qemu,不做参考,不过这里给出原文链接:
    DEXLabs

    仅供参考,欢迎指正

    作者:看书的小蜗牛
    原文链接 Android模拟器识别技术

    Github链接 CacheEmulatorChecker

    参考文档

    QEMU emulation detection
    DEXLabs

    展开全文
  • Delphi XE5会自动识别模拟器和真机,但是你必须先打开模拟器在打开Delphi IDE(Delphi开发环境),否则还得麻烦一会儿。 如果你先打开了Delohi开发环境,那要怎样让它找到模拟器呢? 这时候你就要重新关闭adb,然后...

    首先,关于这个模拟器问题比较纠结,这是一个关于adb的问题。

    Delphi XE5会自动识别模拟器和真机,但是你必须先打开模拟器在打开Delphi IDE(Delphi开发环境),否则还得麻烦一会儿。

    如果你先打开了Delohi开发环境,那要怎样让它找到模拟器呢?

    这时候你就要重新关闭adb,然后在打开adb(重启adb).那么这个adb在哪里呢?对,就在你的sdk文件夹下,找到你当初配置android开发环境的时候那个sdk就找到了adb.

    接下来是怎样重启adb。很简单,直接命令行:cmd.之后在打开的dos下把adb.exe拖进去,空格kill-server,然后利用上下键或者你再拖一遍,空格start-server.这时候你就可以看看你的Delphi xe5里有没有模拟器了。要是没有,没关系,右键 target刷新,还是没有,重复上面的重启adb操作。重复次数多了就有了。然后双击emulator-5554(你找到的模拟器),这样就设置成了默认的模拟器了。

    还有什么问题,给我留言。大家讨论啊。

    展开全文
  • Delphi XE10 Seattle 版本,配置安卓开发环境,安卓虚拟机需要安装以下这些包,截图做记录如下,以供下次配置环境使用: 1、设置下载路径 镜像地址: android-mirror.bugly.qq.com 端口:8080 2、安装的包如下 =...

    Delphi XE10 Seattle 版本,配置安卓开发环境,安卓虚拟机需要安装以下这些包,截图做记录如下,以供下次配置环境使用:

    1、设置下载路径        镜像地址: android-mirror.bugly.qq.com       端口:8080

    2、安装的包如下

    ==========2.1==========

    ============2.2============

    ============2.3============

    ============2.4============

     2018-10-24 补充:参考delphi群里著名的不看后悔文档

    其他可用的镜像地址:mirrors.neusoft.edu.cn   ; ubuntu.buct.edu.cn ; 
    mirrors.opencas.cn     ;   www.androiddevtools.cn ; 端口都是80

    展开全文
  • RAD,可以快速开发出来,但是问题较多最好别用 说实话做出来的app太!大!了!十分的特别的占内存!...FireMonkey真心太大了......因为用户少Bug多,开发App虽可跨安卓,苹果,开发稍大程序不稳定,不可控因素多,但...
  • 目前对Android模拟器的检测,主要是从特定的系统值来进行区分的。例如,getDeviceId()、getLine1Number()这类函数,还有android.os.Build类记录的一系列值等等。但是偶然发现有位老外提出了用cache来区分模拟器和...
  • 1.官网下载模拟器http://www.bignox.com/并运行 2.打开开发者选项刚开始是看不到的-&gt;关于平板电脑-&gt;多点几次版本号-&gt;打开开发者选项-&gt;勾选USB调试 3.打开你SDK路径比如我的:“C:\...
  • Android 入门 (五) android模拟器定制 2010-03-11 17:07:52 原文:http://blog.chinaunix.net/uid-20548090-id-1927444.html 分类: LINUX Android模拟器是基于qemu的基础上修改...
  • android模拟器定制

    2015-05-08 10:01:44
    Android模拟器是基于qemu的基础上修改的,代码在 external/qemu下。 怎么根据我的项目来定制skin呢? 比如我的项目是 : LCD 800x480 WVGA   6个键,分别是上,下,左,右,OK ,Back portrait 竖屏 ...
  • 手动安装Android开发工具 开始安装Android开发工具 重要提示:这不是安装Android...如果您在RAD Studio 安装程序选择退出,您还可以使用GetIt安装Android开发工具。 如果某些事情阻止您使用这些方法来安装A
  • 适用:XE8 Android 平台  问题:安装 XE8 RTM 时,如果勾选了 Android SDK 5.0.1 (API 21) 及 Android NDK (android-ndk-r9c) ,安装后记得更新 Android SDK。   ▼步骤一:打开 Option 可看到许多...
  • 对于android的开发环境,XE5支持模拟器,和真机设备两种模式: 1. 模拟器:(支持4.0.3;4.0.4;4.1.X;4.2.X;4.3.X) 虽然文档上说的支持,但是仅测试在模拟器上运行非常慢。下面介绍如何将程序部署到模拟器 a) 安装...
  • android模拟器发布APK

    2012-08-31 17:47:49
    1、 复制需要安装的APK文件到Android SDK的Tools文件夹(APK和emulator.exe同文件夹) 2、打开cmd命令 3、定位到android-sdk_r06-windows的tools目录下(需要用到E:和cd命令) 4、输入adb install XXXX.apk 5...
  • 最近有关于数据库的学习时,需要用...于是,我便下一个天天模拟器,在用adb命令时,一开始连不上,之后查找一会发现应该使用 adb connect 127.0.0.1:6555   之后就出现: 代表成功!!!!   特此记一下~~
1 2 3 4 5 ... 17
收藏数 339
精华内容 135