首页 文章 精选 留言 我的

精选列表

搜索[游戏模拟器],共10000篇文章
优秀的个人博客,低调大师

Android联机或者模拟器单独测试Activity的辅助Activity示例开发

想起写个单独测试Activity的辅助Activity的原因是在联机测试的时候IDEA或者Android Studio中的指定运行Activity功能没法使用了。 下面付IDE中指定运行Activity的界面截图: 辅助Activity要做的事情是将辅助Activity作为启动的默认Activity,其主界面中以ListView的形式展示所有Activity,通过单击ListView的Item项来启动要测试的Activity。 1. 辅助Activity代码示例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 package secondriver.app; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.content.pm.ActivityInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.LinearLayout; import android.widget.ListView; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** *CreatedbyBronchoon2015/11/15. */ public class TestActivitiesActivity extends Activity implements AdapterView.OnItemClickListener{ private LinearLayoutmRootView; private ListViewmListView; private ArrayAdaptermAdapter; private List<Class>mAllActivities; @Override protected void onCreate(BundlesavedInstanceState){ super .onCreate(savedInstanceState); initView(); mAllActivities=getActivities( this , this .getPackageName(),Arrays.<Class>asList( this .getClass())); mAdapter= new ArrayAdapter( this ,android.R.layout.simple_list_item_1,android.R.id.text1,mAllActivities); mListView.setAdapter(mAdapter); mListView.setOnItemClickListener( this ); } private void initView(){ mRootView= new LinearLayout( this ); mListView= new ListView( this ); mListView.setId(android.R.id.list); mRootView.addView(mListView,ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.WRAP_CONTENT); setContentView(mRootView); } @Override public void onItemClick(AdapterView<?>parent,Viewview, int position, long id){ Classactivity=mAllActivities.get(position); //启动指定的Activity startActivity( new Intent( this ,activity)); } /** *获取所有要测试的ActivityClass * *@paramcontext *@parampackageName *@paramexcludeActivities *@return */ public static List<Class>getActivities(Contextcontext,StringpackageName,List<Class>excludeActivities){ final StringTAG= "GET_ACTIVITY" ; List<Class>includeActivities= new ArrayList<>(); try { PackageInfopackageInfo=context.getPackageManager().getPackageInfo(packageName,PackageManager.GET_ACTIVITIES); if (packageInfo.activities!= null ){ ActivityInfo[]activityInfos=packageInfo.activities; Log.d(TAG, "Find" +activityInfos.length+ "activityinAndroidManifest.xml." ); for (ActivityInfoactivityInfo:activityInfos){ ClassactivityClass; StringactivityName=activityInfo.name; try { activityClass=Class.forName(activityName); if (Activity. class .isAssignableFrom(activityClass)){ includeActivities.add(activityClass); } } catch (ClassNotFoundExceptione){ Log.d(TAG, "Classnotfoundactivity" +activityName+ "inpackage" +packageName); } } } Log.d(TAG, "Found" +includeActivities.size()+ "activitylistis:" +Arrays.toString(includeActivities.toArray())); if ( null !=excludeActivities){ includeActivities.removeAll(excludeActivities); } Log.d(TAG, "Last" +includeActivities.size()+ "activitylistis:" +Arrays.toString(includeActivities.toArray())); } catch (PackageManager.NameNotFoundExceptione){ Log.d(TAG, "Androidsystemnotfoundpackage" +packageName); } return includeActivities; } } 在AndroidManifest.xml中讲辅助Activity设置为默认启动的Activity,之后就可以通过选择点击要启动的Activity来进行测试。该示例还可以通过添加一些代码来增强,比如启动Activity的时候可以通过输入对话框的方式携带数据至启动的Activity。测试完成后删除或者充足默认启动的Activity即可。 2. 配置AndroidManifest.xml : 1 2 3 4 5 6 7 8 < activity android:name = ".TestActivitiesActivity" > < intent-filter > < action android:name = "android.intent.action.MAIN" /> < category android:name = "android.intent.category.LAUNCHER" /> </ intent-filter > </ activity > < activity android:name = ".OneActivity" /> < activity android:name = ".TwoActivity" /> 3. 调试日志: 1 2 3 11 - 15 20 : 07 : 31.899 10665 - 10665 /secondriver.appD/GET_ACTIVITY:Find 3 activityinAndroidManifest.xml. 11 - 15 20 : 07 : 31.899 10665 - 10665 /secondriver.appD/GET_ACTIVITY:Foundactivityhave 3 listis:[ class secondriver.app.TestActivitiesActivity, class secondriver.app.OneActivity, class secondriver.app.TwoActivity] 11 - 15 20 : 07 : 31.899 10665 - 10665 /secondriver.appD/GET_ACTIVITY:Lastactivityhave 2 listis:[ class secondriver.app.OneActivity, class secondriver.app.TwoActivity] 从日志中可以看到一共发现了3个Activity类,去除辅助的Activity,在ListView中讲显示2个Item项。 后期追加内容: 4. 结果效果图 新源码参见附件:TestActivitiesActivity.java.txt Item状态变化Drawable文件内容如下: 本文转自 secondriver 51CTO博客,原文链接:http://blog.51cto.com/aiilive/1712943,如需转载请自行联系原作者

优秀的个人博客,低调大师

最新的Win 10移动版缺少了安卓/iOS模拟器

微软在最近BUILD大会上终于承认自己平台应用程序无论在数量还是在质量上都处于低迷状态,为了安抚客户,并加强其应用产品,微软很快将允许iOS和Android应用程序在Windows 10手机上运行。这个功能被统称为Astoria项目,我们在八月看到它的实际应用,当时一些用户声称能在Windows 10移动测试版当中激活隐藏子系统,并在Windows手机上运行Android应用程序。 然而微软Windows 10 Mobile Build 10549,被发现缺少了这个子系统。XDA论坛的用户发现,微软显然已经在Windows 10 Mobile Build 10549当中删除了这个功能。 这个功能已经被归类到让Windows 10 Mobile系统速度减慢的行列。但是,微软未来可能让这个功能回归,因为微软自己公开承认未来将让Windows 10 Mobile 运行安卓和iOS应用程序。 杀掉这个功能会显著伤害微软在手机业务上的努力,并导致客户大规模的反弹。XDA用户发现,在最新的Build 10563当中还包含了相关文件,所以这项功能更可能在未来版本当中回归。 文章转载自 开源中国社区[https://www.oschina.net]

优秀的个人博客,低调大师

开源游戏引擎 Godot 4.6.2 发布

Godot 4.6.2 现已发布,这是一个维护版本。共有 61 位贡献者为本次版本提交了122 项修复,一些更新内容如下: 3D:修复子控制块的 3D focus 选择(GH-116972)。 3D:修复 DirectionalLight3D 属性列表(GH-117189)。 Animation:发射animation_finished信号后检查playback_queue是否存在(GH-116676)。 Animation:切换动画时取消选择 bezier keyframes(GH-116953)。 Animation:修复标记选择期间时间线光标跟随鼠标的问题(GH-117634)。 Animation:修复选择期间动画编辑器关键帧的视觉偏移(GH-117290)。 Core:修复空字符串导致的String::split_崩溃(GH-117353)。 Core:修复复制实例化节点时可编辑子节点的状态(GH-117041)。 Core:RingBuffer:修复T read()方法读取空缓冲区的问题(GH-117388)。 Editor:修复构建配置文件生成器生成无效配置文件的问题(GH-115410)。 Editor:修复暂停和停止后静音按钮的问题(GH-116537)。 Editor:修复 Window 子类的主题项检查器工具提示(GH-115245)。 Editor:在编辑时设置 Tree 内联单元格编辑器的辅助功能名称(GH-117135)。 Editor:默认情况下停止自动补全功能吞噬单词(GH-117464)。 Export:Android Editor:导出期间将密钥库复制到临时文件(GH-116161)。 GDExtension:在MovieWriter中添加缺失的GDVIRTUAL_BIND(_get_supported_extensions)(GH-117479)。 GUI:修复双击后 RichTextLabel 拖动选择不起作用的问题(GH-117201)。 Import:Blender 尝试次数应递增,以避免无限循环(GH-116589)。 Physics:Jolt Physics:在以非常小的角度旋转物体时,提高 MoveKinematic 的精度(GH-115327)。 Physics:Jolt Physics:重新设计重力如何应用于动态物体,以防止弹性碰撞时能量增加(GH-115305)。 Platforms:Android:修复在 Gradle 构建的应用程序中使用 treeUri 时 FileAccess 崩溃的问题(GH-117131)。 Platforms:修复 macOS Steam 打开项目时丢失时间跟踪的问题(GH-117335)。 Platforms:iOS:添加 UIScene 生命周期事件(GH-116395)。 Platforms:iOS:将 VC UI 首选项传播到 SwiftUIhosting controller(GH-116633)。 Platforms:macOS:如果Magnet正在运行,则启用事件唤醒(GH-116524)。 Platforms:Windows:当 ANGLE 初始化失败时设置当前驱动程序(GH-117253)。 Rendering:正确应用固定尺寸进行单声道/立体渲染(GH-115147)。 Rendering:修复画布渲染器中意外的写合并内存读取(GH-115757)。 Rendering:修复计算顶点蒙皮时切线解码检测的问题(GH-117401)。 Rendering:macOS:在虚拟机中运行时强制使用 ANGLE(GL over Metal)(GH-117371)。 此版本基于commit001aa128b构建。 更多详情可查看:https://godotengine.org/article/maintenance-release-godot-4-6-2/

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册