月度归档: 2021 年 7 月

2021年7月中国采购经理指数运行情况

国家统计局服务业调查中心中国物流与采购联合会   一、中国制造业采购经理指数运行情况   7月份,中国制造业采购经理指数(PMI)为50.4%,低于上月0.5个百分点,继续位于临界点以上,制造业总体继续保持扩张态势,但步伐有所放缓。    从企业规模看,大型企业PMI为51.7% ,与上月持平,继续高于临界点;中型企业PMI为50.0%,比上月回落0.8个百分点,位于临界点;小型企业PMI为47.8%,比上月下降1.3个百分点,低于临界点。   从分类指数看,在构成制造业PMI的5个分类指数中,生产指数和新订单指数均高于临界点,原材料库存指数、从业人员指数和供应商配送时间指数均低于临界点。   生产指数为51.0%,比上月回落0.9个百分点,高于临界点,表明制造业生产扩张力度有所减弱。   新订单指数为50.9%,比上月回落0.6个百分点,高于临界点,表明制造业市场需求增长放缓。   原材料库存指数为47.7%,比上月下降0.3个百分点,低于临界点,表明制造业主要原材料库存量较上月有所减少。   从业人员指数为49.6%,比上月回升0.4个百分点,表明制造业企业用工景气度继续改善。   供应商配送时间指数为48.9%,比上月回升1.0个百分点,低于临界点,表明制造业原材料供应商交货时间有所延长。  表1 中国制造业PMI及构成指数(经季节调整) 单位:%   PMI   生产 新订单 原材料 库存 从业人员 供应商配送 时间 2020年7月 51.1 54.0 51.7 47.9 49.3 50.4 2020年8月 51.0 53.5 52.0 47.3 49.4 50.4 2020年9月 51.5 54.0 52.8 48.5 49.6 50.7 2020年10月 51.4 53.9 52.8 48.0 49.3 50.6 2020年11月 52.1 54.7 53.9 48.6 49.5 50.1 2020年12月 51.9 54.2 53.6 48.6 49.6 49.9 2021年1月 51.3 53.5 52.3 49.0 48.4 48.8 2021年2月 50.6 51.9 51.5 47.7 48.1 47.9 2021年3月 51.9 53.9 53.6 48.4 50.1 50.0 2021年4月 51.1 52.2 52.0 48.3 49.6 48.7 2021年5月 51.0 52.7 51.3 47.7 48.9 47.6 2021年6月 50.9 51.9 51.5 48.0 49.2 47.9 2021年7月 50.4 51.0 50.9 47.7 49.6 48.9   表2 中国制造业PMI其他相关指标情况(经季节调整) 单位:%   新出口 订单 进口 采购量 主要原材料购进价格 出厂 价格 产成品 库存 在手 订单 生产经营活动预期 2020年7月 48.4 49.1 52.4 58.1 52.2 47.6 45.6 57.8 2020年8月 49.1 49.0 51.7 58.3 53.2 47.1 46.0 58.6 2020年9月 50.8 50.4 53.6 58.5 52.5 48.4 46.1 58.7 2020年10月 51.0 50.8 53.1 58.8 53.2 44.9 47.2 59.3 2020年11月 51.5 50.9 53.7 62.6 56.5 45.7 46.7 60.1 2020年12月 51.3 50.4 53.2 68.0 58.9 46.2 47.1 59.8 2021年1月 50.2 49.8 52.0 67.1 57.2 49.0 47.3 57.9 2021年2月 48.8 49.6 51.6 66.7 58.5 48.0 46.1 59.2 2021年3月 51.2 51.1 53.1 69.4 59.8 46.7 46.6 58.5 2021年4月 50.4 50.6 51.7 66.9 57.3 46.8 46.4 58.3 2021年5月 48.3 50.9 51.9 72.8 60.6 46.5 45.9 58.2 2021年6月 48.1 49.7 51.7 61.2 51.4 47.1 46.6 57.9 2021年7月 47.7 49.4 50.8 62.9 53.8 47.6 46.1 57.8    二、中国非制造业采购经理指数运行情况   7月份,非制造业商务活动指数为53.3%,略低于上月0.2个百分点,继续高于临界点,表明非制造业总体保持平稳扩张。    分行业看,建筑业商务活动指数为57.5%,低于上月2.6个百分点。服务业商务活动指数为52.5%,高于上月0.2个百分点。从行业情况看,水上运输、电信广播电视及卫星传输服务、资本市场服务等行业商务活动指数位于60.0%以上高位景气区间;其他金融业、房地产、居民服务等行业商务活动指数位于临界点以下。     新订单指数为49.7%,比上月微升0.1个百分点,仍低于临界点,表明非制造业市场需求降幅略有收窄。分行业看,建筑业新订单指数为50.0%,比上月回落1.2个百分点;服务业新订单指数为49.7%,比上月回升0.3个百分点。   投入品价格指数为53.5%,比上月上升0.1个百分点,高于临界点,表明非制造业企业用于经营活动的投入品价格与上月相比涨幅略有加大。分行业看,建筑业投入品价格指数为57.1%,比上月上升5.4个百分点;服务业投入品价格指数为52.8%,比上月回落0.9个百分点。   销售价格指数为51.3%,比上月微落0.1个百分点,高于临界点,表明非制造业销售价格涨幅略有收窄。分行业看,建筑业销售价格指数为52.9%,比上月上升0.9个百分点;服务业销售价格指数为51.1%,比上月回落0.1个百分点。   从业人员指数为48.2%,比上月回升0.2个百分点,表明非制造业企业用工景气度略有改善。分行业看,建筑业从业人员指数为52.1%,比上月上升1.8个百分点;服务业从业人员指数为47.5%,比上月下降0.1个百分点。   业务活动预期指数为60.7%,比上月微落0.1个百分点,持续位于高位景气区间,表明非制造业企业对市场发展保持乐观。分行业看,建筑业业务活动预期指数为64.0%,比上月上升0.8个百分点;服务业业务活动预期指数为60.1%,比上月回落0.3个百分点。  表3 中国非制造业主要分类指数(经季节调整) 单位:%   商务活动 新订单 投入品 价格 销售价格 从业人员 业务活动 预期 2020年7月 54.2 51.5 53.0 50.1 48.1 62.2 2020年8月 55.2 52.3 51.9 50.1 48.3 62.1 2020年9月 55.9 54.0 50.6 48.9 49.1 63.0 2020年10月 56.2 53.0 50.9 49.4 49.4 62.9 2020年11月 56.4 52.8 52.7 51.0 48.9 61.2 2020年12月 55.7 51.9 54.3 52.3 48.7 60.6 2021年1月 52.4 48.7 54.5 51.4 47.8 55.1 2021年2月 51.4 48.9 54.7 50.1 48.4 64.0 2021年3月 56.3 55.9 56.2 52.2 49.7 63.7 2021年4月 54.9 51.5 54.9 51.2 48.7 63.0 2021年5月 55.2 52.2 57.7 52.8 48.9 62.9 2021年6月 53.5 49.6 53.4 51.4 48.0 60.8 2021年7月 53.3 49.7 53.5 51.3 48.2 60.7   表4 中国非制造业其他分类指数(经季节调整) 单位:%   新出口订单 在手订单 存货 供应商配送时间 2020年7月 44.5 44.9 48.1 51.9 2020年8月 45.1 44.6 48.5 52.4 2020年9月 49.1 46.3 48.5 52.2 2020年10月 47.0 44.9 48.7 52.3 2020年11月 49.0 45.2 48.8 51.8 2020年12月 47.5 44.7 47.0 51.2 2021年1月 48.0 44.0 47.4 49.8 2021年2月 45.7 44.0 45.9 49.8 2021年3月 50.3 45.9 48.2 51.8 2021年4月 48.1 45.8 47.2 50.9 2021年5月 47.6 44.7 47.2 50.8 2021年6月 45.4 43.8 47.0 51.0 2021年7月 47.7 44.8 47.3 51.3    三、中国综合PMI产出指数运行情况   7月份,综合PMI产出指数为52.4%,比上月回落0.5个百分点,表明我国企业生产经营活动扩张速度有所放慢。    附注   1.主要指标解释   采购经理指数(PMI),是通过对企业采购经理的月度调查结果统计汇总、编制而成的指数,它涵盖了企业采购、生产、流通等各个环节,包括制造业和非制造业领域,是国际上通用的监测宏观经济走势的先行性指数之一,具有较强的预测、预警作用。综合PMI产出指数是PMI指标体系中反映当期全行业(制造业和非制造业)产出变化情况的综合指数。PMI高于50%时,反映经济总体较上月扩张;低于50%,则反映经济总体较上月收缩。   2.调查范围   涉及《国民经济行业分类》(GB/T4754-2017)中制造业的31个行业大类,3000家调查样本;非制造业的43个行业大类,4200家调查样本。   3.调查方法   采购经理调查采用PPS(Probability Proportional to Size)抽样方法,以制造业或非制造业行业大类为层,行业样本量按其增加值占全部制造业或非制造业增加值的比重分配,层内样本使用与企业主营业务收入成比例的概率抽取。   本调查由国家统计局直属调查队具体组织实施,利用国家统计联网直报系统对企业采购经理进行月度问卷调查。   4.计算方法   (1)分类指数的计算方法。制造业采购经理调查指标体系包括生产、新订单、新出口订单、在手订单、产成品库存、采购量、进口、主要原材料购进价格、出厂价格、原材料库存、从业人员、供应商配送时间、生产经营活动预期等13个分类指数。非制造业采购经理调查指标体系包括商务活动、新订单、新出口订单、在手订单、存货、投入品价格、销售价格、从业人员、供应商配送时间、业务活动预期等10个分类指数。分类指数采用扩散指数计算方法,即正向回答的企业个数百分比加上回答不变的百分比的一半。由于非制造业没有合成指数,国际上通常用商务活动指数反映非制造业经济发展的总体变化情况。   (2)制造业PMI指数的计算方法。制造业PMI是由5个扩散指数(分类指数)加权计算而成。5个分类指数及其权数是依据其对经济的先行影响程度确定的。具体包括:新订单指数,权数为30%;生产指数,权数为25%;从业人员指数,权数为20%;供应商配送时间指数,权数为15%;原材料库存指数,权数为10%。其中,供应商配送时间指数为逆指数,在合成制造业PMI指数时进行反向运算。   (3)综合PMI产出指数的计算方法。综合PMI产出指数由制造业生产指数与非制造业商务活动指数加权求和而成,权数分别为制造业和非制造业占GDP的比重。   5.季节调整   采购经理调查是一项月度调查,受季节因素影响,数据波动较大。现发布的指数均为季节调整后的数据。 

2021年上半年全国规模以上文化及相关产业企业营业收入增长30.4%,两年平均增长10.6%

  据对全国6.3万家规模以上文化及相关产业企业调查,上半年,上述企业实现营业收入54380亿元,按可比口径计算(详见附注6),比上年同期增长30.4%[1];比2019年上半年增长22.4%,两年平均增长10.6%。   分业态看,文化新业态特征较为明显的16个行业小类[2]实现营业收入18204亿元,比上年同期增长32.9%;比2019年上半年增长57.1%,两年平均增长25.3%。   分行业类别看,新闻信息服务营业收入6415亿元,同比增长27.7%,两年平均增长20.3%;内容创作生产11484亿元,增长25.3%,两年平均增长11.8%;创意设计服务9019亿元,增长33.3%,两年平均增长17.4%;文化传播渠道6169亿元,增长42.6%,两年平均增长3.8%;文化投资运营226亿元,增长20.1%,两年平均增长8.6%;文化娱乐休闲服务592亿元,增长78.9%,两年平均下降4.3%;文化辅助生产和中介服务7359亿元,增长25.8%,两年平均增长4.4%;文化装备生产3023亿元,增长25.7%,两年平均增长6.4%;文化消费终端生产10094亿元,增长32.1%,两年平均增长11.5%。   分产业类型看,文化制造业营业收入19585亿元,比上年同期增长26.0%,两年平均增长6.8%;文化批发和零售业8960亿元,增长37.1%,两年平均增长6.2%;文化服务业25835亿元,增长31.8%,两年平均增长15.8%。   分领域看,文化核心领域[3]营业收入33905亿元,比上年同期增长31.4%,两年平均增长12.3%;文化相关领域20476亿元,增长28.8%,两年平均增长8.1%。   分区域看,东部地区实现营业收入41658亿元,比上年同期增长31.5%,两年平均增长11.0%;中部地区7419亿元,增长27.6%,两年平均增长9.1%;西部地区4818亿元,增长26.2%,两年平均增长11.0%;东北地区486亿元,增长28.2%,两年平均增长1.4%。  2021年上半年全国规模以上文化及相关产业企业营业收入情况     *对额 所占比重 比上年同期 增长 比2019年 上半年增长 两年平均增长 (亿元) (%) (%) (%) (%) 总 计 54380 100.0 30.4 22.4 10.6             按行业类别分            新闻信息服务 6415 11.8 27.7 44.8 20.3  内容创作生产 11484 21.1 25.3 25.0 11.8  创意设计服务 9019 16.6 33.3 37.8 17.4  文化传播渠道 6169 11.3 42.6 7.8 3.8  文化投资运营 226 0.4 20.1 17.9 8.6  文化娱乐休闲服务 592 1.1 78.9 -8.5 -4.3  文化辅助生产和中介服务 7359 13.5 25.8 9.0 4.4  文化装备生产 3023 5.6 25.7 13.1 6.4  文化消费终端生产 10094 18.6 32.1 24.4 11.5             按产业类型分            文化制造业 19585 36.0 26.0 14.1 6.8  文化批发和零售业 8960 16.5 37.1 12.8 6.2  文化服务业 25835 47.5 31.8 34.0 15.8             按领域分            文化核心领域 33905 62.3 31.4 26.1 12.3  文化相关领域 20476 37.7 28.8 16.8 8.1             按区域分            东部地区 41658 76.6 31.5 23.2 11.0  中部地区 7419 13.6 27.6 19.0 9.1  西部地区 4818 8.9 26.2 23.2 11.0  东北地区 486 0.9 28.2 2.8 1.4 注:1.表中速度均为未扣除价格因素的名义增速。         2.表中部分数据因四舍五入,存在总计与分项合计不等的情况。    注:   [1] 为名义增长,未扣除价格因素。   [2] 新业态特征明显的16个行业小类是:广播电视集成播控,互联网搜索服务,互联网其他信息服务,数字出版,其他文化艺术业,动漫、游戏数字内容服务,互联网游戏服务,多媒体、游戏动漫和数字出版软件开发,增值电信文化服务,其他文化数字内容服务,互联网广告服务,互联网文化娱乐平台,版权和文化软件服务,娱乐用智能无人飞行器制造,可穿戴智能文化设备制造,其他智能文化消费设备制造。   [3] 文化核心领域包括新闻信息服务、内容创作生产、创意设计服务、文化传播渠道、文化投资运营、文化娱乐休闲服务6个行业,文化相关领域包括文化辅助生产和中介服务、文化装备生产、文化消费终端生产3个行业。   附注   1、指标解释   文化及相关产业指为社会公众提供文化产品和文化相关产品的生产活动的集合。《文化及相关产业分类(2018)》规定文化及相关产业包括新闻信息服务、内容创作生产、创意设计服务、文化传播渠道、文化投资运营、文化娱乐休闲服务、文化辅助生产和中介服务、文化装备生产、文化消费终端生产9个大类。   营业收入指“主营业务收入”及“其他业务收入”之和。   两年平均增速是指以2019年相应同期数为基数,采用几何平均的方法计算的增速。   2、统计范围   规模以上文化及相关产业的统计范围为《文化及相关产业分类(2018)》所规定行业范围内,年主营业务收入在2000万元及以上的工业企业;年主营业务收入在2000万元及以上的批发企业或年主营业务收入在500万元及以上的零售企业;年营业收入在1000万元及以上的服务业企业,其中交通运输、仓储和邮政业,信息传输、软件和信息技术服务业,水利、环境和公共设施管理业的年营业收入在2000万元及以上,居民服务、修理和其他服务业,文化、体育和娱乐业的年营业收入在500万元及以上。   3、调查方法   每季度进行规模以上文化及相关产业法人单位认定,根据国家统计联网直报平台上规模以上工业企业、限额以上批发和零售业企业、规模以上服务业企业全面调查取得的数据进行汇总。   4、行业分类标准   执行《文化及相关产业分类(2018)》,具体请参见http://www.stats.gov.cn/tjgz/tzgb/201804/t20180423_1595390.html。   5、东、中、西部和东北地区   东部地区包括北京、天津、河北、上海、江苏、浙江、福建、山东、广东、海南10个省(市);中部地区包括山西、安徽、江西、河南、湖北、湖南6个省;西部地区包括内蒙古、广西、重庆、四川、贵州、云南、西藏、陕西、甘肃、青海、宁夏、新疆12个省(市、自治区);东北地区包括辽宁、吉林、黑龙江3个省。   6、2021年上半年规模以上文化及相关产业企业营业收入的上年同期数与之前公布的2020年上半年数据存在差异,主要原因是:(一)规模以上企业数量发生增减变化。2021年上半年有部分企业达到规模以上标准纳入调查范围,也有部分企业因规模变小而退出调查范围,还有新建投产、破产注(吊)销企业等,使得规上企业数量发生变化。2021年6月,全国规模以上文化及相关产业调查企业数量为6.3万家,比上年同期增加4160家。按照可比口径,2020年上半年全国规模以上文化及相关产业企业营业收入为41690亿元。(二)加强统计执法,对统计执法检查中发现的不符合规模以上要求的企业及填报的不实数据进行了清理,对相关基数依规进行了修正。 

国家统计局社科文司高级统计师张鹏解读上半年全国规模以上文化及相关产业企业营业收入数据

文化企业发展持续向好 营业收入保持较快增长 ——国家统计局社科文司高级统计师张鹏解读上半年全国规模以上文化及相关产业企业营业收入数据   随着我国经济持续稳定恢复,文化消费潜力加快释放,文化新业态引领作用增强,上半年我国文化及相关产业呈现良好发展态势,文化企业营业收入保持较快增长。   上半年,全国规模以上文化及相关产业企业(以下简称“文化企业”)实现营业收入54380亿元,比上年同期增长30.4%,比2019年上半年增长22.4%,两年平均增长10.6%[1];两年平均增速比一季度加快0.6个百分点,比2019年上半年增速加快2.7个百分点。文化企业发展势头总体持续向好,恢复基础得到进一步巩固加强。   五大行业营业收入两年平均增速快于2019年上半年。从营业收入看,上半年文化及相关产业整体发展已恢复到疫情前水平,多数行业甚至好于疫情前水平。文化及相关产业9个行业中,创意设计服务、内容创作生产、文化消费终端生产、文化装备生产等4个行业两年平均增速分别为17.4%、11.8%、11.5%和6.4%,比2019年上半年增速加快5.0、2.0、4.5和1.1个百分点;文化辅助生产和中介服务由2019年上半年下降2.0%转为两年平均增长4.4%。受疫情影响*严重的文化娱乐休闲服务延续一季度强劲反弹态势,比上年同期增长78.9%,两年平均增速下降4.3%,降幅比一季度收窄4.9个百分点。   文化新业态引领产业发展。从文化及相关产业细分行业看,动漫游戏、视频直播、数字出版等“互联网+文化”新业态保持强劲增长态势。上半年,文化新业态特征较为明显的16个行业小类[2]实现营业收入18204亿元,比上年同期增长32.9%,占全部文化企业营业收入的比重为33.5%,比上年同期提高0.6个百分点;两年平均增长25.3%,高于全国文化企业平均水平14.7个百分点。其中,互联网广告服务、娱乐用智能无人飞行器制造、可穿戴智能文化设备制造3个细分行业营业收入两年平均增速均超过30%。   文化产业区域发展面扩质升。上半年,全国31个地区文化企业营业收入同比全部实现正增长;27个地区两年平均增速实现正增长,比一季度增加2个地区;22个地区两年平均增速快于2019年上半年,比一季度增加1个地区。从区域看,东部地区实现营业收入41658亿元,同比增长31.5%,两年平均增长11.0%;占全国的比重为76.6%,比上年同期提高0.6个百分点。   下阶段,随着我国经济运行稳中加固、稳中向好,文化市场供需潜能稳步释放,文化及相关产业有望保持向好发展态势。   注:   [1]两年平均增速是指以2019年相应同期数为基数,采用几何平均的方法计算的增速。   [2]新业态特征明显的16个行业小类是:广播电视集成播控,互联网搜索服务,互联网其他信息服务,数字出版,其他文化艺术业,动漫、游戏数字内容服务,互联网游戏服务,多媒体、游戏动漫和数字出版软件开发,增值电信文化服务,其他文化数字内容服务,互联网广告服务,互联网文化娱乐平台,版权和文化软件服务,娱乐用智能无人飞行器制造,可穿戴智能文化设备制造,其他智能文化消费设备制造。  

iOS解决Launch Screen.storyboard启动画面黑屏

查看启动屏图片的名字
启动图名字不要包含Launch这样的字眼。

启动图片工程中位置
将启动图放在工程的根目录下,不要放在Assets.xcassets中。

启动图的格式
建议使用png,尽量不要使用jpg

查看工程中是否仍在使用LaunchImage
将工程中与LaunchImage有关的全部删掉,包括Assets.xcassets中。*好在检查下plist文件和build Settings。

%title插图%num

%title插图%num

修改图片名字
有时候把启动图去掉,或者添加新的启动图,显示出来的还是之前的图片。这可能是缓存导致的,将启动图的名字改一下就会正常。

需要Clean重新编译
Clean后重新编译应用,或者直接清空DerivedData文件夹再重新编译。

删除应用重启手机
修改启动图后,*好卸载重装应用,有时可能还需要重启手机,否则可能会因为缓存还显示旧图片。

iOS开发时如何使用 Launch Screen Storyboard

静态启动图片

启动图片是iOS加载App的时候系统响应的直观呈现。近几年,随着屏幕尺寸的增多,制作相应的静态图片就变成一件十分让人头疼的事。在下面,我列举了一些 启动图片的尺寸(尺寸包括状态条区域)。为了简洁,我省略了横屏的版本:

  • iPad 2 and iPad mini (@1x): 768 x 1024
  • iPad and iPad mini (retina @2x): 1536 x 2048
  • iPhone 4s (retina @2x) 640 x 960
  • iPhone 5 (@2x): 640 x 1136
  • iPhone 6 (@2x): 750 x 1334
  • iPhone 6 Plus (@3x): 1242 x 2208

好消息是,在Xcode 6 and iOS 8允许使用NIB或storyboard launch screen 文件。利用auto layout 和size classes的优势,一个单独的NIB或storyboard文件在runtime时可以自动的去创建启动图片集。这就意味着,你想在全屏模式下支持iPhone 6 和 iPhone 6 Plus的话就无需提供匹配的的启动图集或者如上面列举出现来的不同尺寸的静态图片

( 26-Dec-2014 更新: 一定要搞清楚,支持iPhone 6 and iPhone 6 Plus ,要求你提供启动图片集合,可以是静态启动图集(static launch images),也可以是启动图布局文件( launch screen file)).

使用启动图片文件

Xcode6在创建新工程时默认添加了一个LaunchScreen.xib文件。对一个已经存在的工程可以用Launch Screen 模板创建一个新的文件。(译者注:在Xcode7里,默认添加的是LaunchScreen.storyboard文件,笔者因此遇到过一个大坑LaunchImage和LaunchScreen.xib混用出现的坑)

%title插图%num

这一步将会在工程中添加一个NIB文件,你可以在初始化的启动屏上添加单个视图或者视图控制器。如果你有多个视图,那么你则需要放弃Launch Screen模板,应该添加一个storyboard。然后在target的工程设置里面指定启动图来源:

%title插图%num

2014-12-24-005.png

这一步将会把 键 Launch screen interface file base name
(UILaunchStoryboardName)加到应用的plist 文件中

%title插图%num

2014-12-24-003.png

接下来,你可以在Interface Builder对启动视图进行布局,使autolayout和size classes作为必选项,为不同的屏幕创建匹配的图片。Xcode模板提供的风格,只是对app的名称和所有权进行了布局,这并不是一个*理想的范例。在你添加自己的视图之前,或许你想删掉它们:

%title插图%num

2014-12-24-004.png

你可以在Xcode中预览storyboard,或者在模拟器和真机上进行测试。尽管启动屏的展示的时间很短,但是你会发现,如果在App delegate的application:didFinishLaunchingWithOptions:方法中添加断点是有用的

Launch Screen 的局限性

系统在启动app之前装载启动文件,在这个过程中可能对app包含的一些文件产生限制(一些限制可能迫使你回退到 使用静态图片集):

  • app还没装载完毕,一些视图的层级结构还不存在,系统不能调用app中任何自定义的视图控制器去启动代码。
  • 你仅仅能使用标准的UIKit类,所以你可以用UIView或者UIViewController,自定义的子类则不可以。如果你尝试着去设置子类,将会得到一个“配置无效”的错误。
  • 启动文件仅仅能够用基础的UIKit视图,像UIImageView 和UILabel,不能使用 UIWebView。
  • 如果你用了storyboard,你可以指定多个视图控制器,但是仍旧有一些限制。例如,你可以在navagation或者tab bar controller嵌入几个视图控制器,但是一些更复杂的类,像UISplitViewController 并不起作用 (至少现在如此).
  • 本地化(译者注:我理解的是自己创建的,而非采用模板)启动图布局文件目前看起来并没有什么不好的影响。也许,你采用的*基本的本地化启动图布局文件可能是不在启动图上显示文字。
  • 你不能为iPhone和iPad指定不同的启动文件。因为auto layout 和size classes的局限性,如果这些设备有着显著不同的界面,就会出现问题。

如果你正在ios7系统上进行开发,那么你仍旧需要包含 静态启动图集。你可以包含启动图布局文件静态启动图集。那么,运行ios8系统的iPhone6将会使用启动图布局文件,而运行ios7系统的设备则回退使用 静态启动图集

Split View Controllers

如果你的根视图控制器是SplitViewControllers,至少在iOS8.1系统,你并没有太多的选择。如果你将SplitViewControllers添加到launch screen storyboard,它不会被装载。由于在iOS8.1中SplitViewControllers复杂度的增加,我怀疑在后续版本中也不会被支持。

除了回退去使用 静态启动图集,唯一能够选择的方式看起来只有放弃 分屏使用。例如,考虑一下接下来使用SplitViewController的iPhone和ipad的启动屏。在iphone(宽度较窄)设备上,初始化的屏幕仅展示主视图控制器(一个嵌入在Navigation Controller里的tableview controller)

%title插图%num

2014-12-24-iphone.png

在ipad(常规宽度)设备上,初始化后的启动屏在分屏控制器里展示的master and detail view controllers

%title插图%num

2014-12-24-ipad.png

这是一种常见的启动方式,但是在这种情况下,没有好的方法使用启动图布局文件.我的建议,即我能得到的*接近的方式是忽略启动屏,用一个嵌套在navigation controller的view controller 作为启动屏

%title插图%num

2014-12-24-006.png

尽管这种方式远远没有达到完美的地步,但是在适配(除了ipad分屏)所有设备用户初始化界面 方面多多少少做了贡献。呈现给用户的静态启动图集虽然效果足够好,但是自己不得不做出判断。

Runtime Generation (added 28-Dec-2014)

尽管苹果文档中并没有清楚地说明,但需要的启动图片在runtime时被生成了。在WWDC 2014
Platform State of the Union上被简短的提到过。你可以通过App在真机或者模拟器上生成的文件夹证实。被特定设备需要的启动图被缓存在Library/Caches/LaunchImages。下面的截屏显示了iPad Air 2生成的启动图片

%title插图%num

 

IOS使用Launch Screen.storyboard制作广告启动界面

*近项目在做的广告sdk,刚好自己需要去了解这个实现启动图加载广告这个功能,大家应该都了解,之前Xcode 6是LaunchScreen.xib来当作启动视图,不过到了Xcode 7就变成了Launch Screen.storyboard,其实这两个没有多大的区别,以下我就采用Xcode 7提供的LaunchScreen.storyboard 来实现这个功能,现在把自己经验和代码分享出来。

主要思路

获取Launch Screen.storyboard

通过使用storyborardID去获取启动视图viewcontroller

获取启动viewController的视图view

之后把视图view添加到window中

*后就是新建一个图片贴在视图view中

做个定时触发处理

废话不多说啦,直接贴代码出来:

AppDelegate.m中的代码

//获取LaunchScreen.storyborad

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@”Launch Screen” bundle:nil];

//通过使用storyborardID去获取启动页viewcontroller

UIViewController *viewController = [storyboard instantiateViewControllerWithIdentifier:@”LaunchScreen”];

//获取viewController的视图

self.view = viewController.view;

//把视图添加到window

[self.window addSubview:self.view];

self.launchView = [[UIImageView alloc] initWithFrame:self.window.frame];

[self.launchView setImage:[UIImage imageNamed:@”launch.jpg”]];//这边图片可以做网络请求加载图片、视频动画或者其他自定义的引导页

[self.view addSubview:self.launchView];

//将图片视图推送到前面

[self.window bringSubviewToFront:self.launchView];

//设置3秒定时触发

[NSTimer scheduledTimerWithTimeInterval:3 target:self selector:@selector(colseLaunchScreen) userInfo:nil repeats:NO];

– (void)colseLaunchScreen {

if (self.launchView) {

[self.launchView removeFromSuperview];

self.launchView = nil;

}

if (self.view) {

[self.view removeFromSuperview];

self.view = nil;

}

}

这边也可以结合LaunchImage使用,方式也是差不多,这边就不多讲了

注意有个坑已填平了:之前我用的xcode项目中General中Main Interface 启动项目初始化的主界面storyboard,用以上方法一直看不到加载的广告,后面使用在AppDelegate代码方式去加载storyboard,就可以加载出来了,目前不清楚这个是什么问题,待研究发现,如有发现朋友,方便留言告知下,谢啦(后面经过友友们的指出,发现如果不是用代码加载storyboard,那General->Main Interface->的main.storyboard加载会新建window,跟你之前传入的window不是同一个,这个之前的就被覆盖了,导致看不到广告效果,之后我修改了方案,把window改成用window中viewController中view这要就避免代码加载stroyboard了)

这里注意一下,上面这个使用storyboard启动适用ios8.0以上,但现在应用差不多都是ios7.0起,开发者为了方便适配,大多都采用launchImage启动,这种也可以使用storyboard去获取广告,完全没有问题,但在加载初始化广告肯定会消耗一点点时间这要就会出现短暂storyboard的默认页面,这个可以通过把获取rootview先隐藏,等加载完毕广告再显示出来!这要问题解决了!

如果先获取launchImage的图片可以采用Cherpak Evgeny 分享在stackflow上的一个直接读取NSBundle中的设置 即可获取当前适用的LaunchImage的办法,代码我也贴出来:

CGSize viewSize =self.window.bounds.size;

NSString *viewOrientation =@”Portrait”;//横屏请设置成 @”Landscape”

NSString *launchImage =nil;

NSArray *imagesDict = [[[NSBundle mainBundle] infoDictionary] valueForKey:@”UILaunchImages”];

for(NSDictionary* dict in imagesDict) {

CGSize imageSize =CGSizeFromString(dict[@”UILaunchImageSize”]);

if(CGSizeEqualToSize(imageSize, viewSize) && [viewOrientation isEqualToString:dict[@”UILaunchImageOrientation”]]) {

launchImage = dict[@”UILaunchImageName”];

}

}

UIImageView *launchView = [[UIImageView alloc] initWithImage:[UIImageimageNamed:launchImage]];

launchView.frame=self.window.bounds;

launchView.contentMode=UIViewContentModeScaleAspectFill;

[self.window addSubview:launchView];

[UIView animateWithDuration:2.0f delay:0.0f options:UIViewAnimationOptionBeginFromCurrentState

animations:^{

launchView.alpha=0.0f;

launchView.layer.transform=CATransform3DScale(CATransform3DIdentity,1.2,1.2,1);

}

completion:^(BOOL finished) {

[launchView removeFromSuperview];

}];

iOS中GestureRecognizer的6大手势与代理方法详细使用

#import “ViewController.h”@interface ViewController ()@property (weak, nonatomic) IBOutlet UIImageView *imageView;

@end

@implementation ViewController

– (void)viewDidLoad {

[super viewDidLoad];

// Do any additional setup after loading the view, typically from a nib.\

[self setUpPinch];

[self setUpRotation];

[self setUpPan];

}

#pragma mark – 手势代理方法

// 是否允许开始触发手势

//- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer

//{

//    return NO;

//}

// 是否允许同时支持多个手势,默认是不支持多个手势

// 返回yes表示支持多个手势

– (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer

{

return YES;

}

// 是否允许接收手指的触摸点

//- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch{

//    // 获取当前的触摸点

//    CGPoint curP = [touch locationInView:self.imageView];

//

//    if (curP.x < self.imageView.bounds.size.width * 0.5) {

//        return NO;

//    }else{

//        return YES;

//    }

//}

1.#pragma mark – 点按手势

– (void)setUpTap

{

// 创建点按手势

UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tap:)];

tap.delegate = self;

[_imageView addGestureRecognizer:tap];

}

– (void)tap:(UITapGestureRecognizer *)tap

{

NSLog(@”%s”,__func__);

}

2.#pragma mark – 长按手势

// 默认会触发两次

– (void)setUpLongPress

{

UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longPress:)];

[self.imageView addGestureRecognizer:longPress];

}

– (void)longPress:(UILongPressGestureRecognizer *)longPress

{

if (longPress.state == UIGestureRecognizerStateBegan) {

NSLog(@”%s”,__func__);

}

}

3.#pragma mark – 清扫

– (void)setUpSwipe

{

// 默认轻扫的方向是往右

UISwipeGestureRecognizer *swipe = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipe)];

swipe.direction = UISwipeGestureRecognizerDirectionUp;

[self.imageView addGestureRecognizer:swipe];

// 如果以后想要一个控件支持多个方向的轻扫,必须创建多个轻扫手势,一个轻扫手势只支持一个方向

// 默认轻扫的方向是往右

UISwipeGestureRecognizer *swipeDown = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipe)];

swipeDown.direction = UISwipeGestureRecognizerDirectionDown;

[self.imageView addGestureRecognizer:swipeDown];

}

– (void)swipe

{

NSLog(@”%s”,__func__);

}

4.#pragma mark – 旋转手势

– (void)setUpRotation

{

UIRotationGestureRecognizer *rotation = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(rotation:)];

rotation.delegate = self;

[self.imageView addGestureRecognizer:rotation];

}

// 默认传递的旋转的角度都是相对于*开始的位置

– (void)rotation:(UIRotationGestureRecognizer *)rotation

{

self.imageView.transform = CGAffineTransformRotate(self.imageView.transform, rotation.rotation);

// 复位

rotation.rotation = 0;

// 获取手势旋转的角度

NSLog(@”%f”,rotation.rotation);

}

5.#pragma mark – 捏合

– (void)setUpPinch

{

UIPinchGestureRecognizer *pinch = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(pinch:)];

pinch.delegate = self;

[self.imageView addGestureRecognizer:pinch];

}

– (void)pinch:(UIPinchGestureRecognizer *)pinch

{

self.imageView.transform = CGAffineTransformScale(self.imageView.transform, pinch.scale, pinch.scale);

// 复位

pinch.scale = 1;

}

6.#pragma mark – 拖拽

– (void)setUpPan

{

UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(pan:)];

[self.imageView addGestureRecognizer:pan];

}

– (void)pan:(UIPanGestureRecognizer *)pan

{

// 获取手势的触摸点

// CGPoint curP = [pan locationInView:self.imageView];

// 移动视图

// 获取手势的移动,也是相对于*开始的位置

CGPoint transP = [pan translationInView:self.imageView];

self.imageView.transform = CGAffineTransformTranslate(self.imageView.transform, transP.x, transP.y);

// 复位

[pan setTranslation:CGPointZero inView:self.imageView];

//  NSLog(@”%@”,NSStringFromCGPoint(curP));

}

有什么方法能够检测手机上已安装的 APP 中有哪些支持 fcm 的?

有什么方法能够检测手机上已安装的 APP 中有哪些支持 fcm 的?

 

*近一个月从 ios 换到 MIUI ( eu 版),这才发现原来 Android 党天天说推送比不过 iOS 并不是夸大其词。iOS 上通知虽然泛滥吧,但我可以主动忽略它,顶多碍眼一些罢了,可在国内用 Android 你就要担心通知是不是漏了? fcm 有没有 disconnected ?新安装的 APP 支不支持 fcm 亦或是 mipush ?需不需要打开自启动开关?所以装国内 APP 时也尽可能选择 play 版,可奈何 play 版也不一定就能走 fcm… 于是就问问大家有没有什么方便的办法能够知道一款 APP 是否接入 fcm 推送?

15 条回复    2021-07-11 10:50:07 +08:00

lzsqq754318010
    1

lzsqq754318010   22 天前

可能有人会说看 fcm 的 log,但问题是有些 App 你不知道它什么时候会有推送,而且频率也可能不是很高。
learningman
    2

learningman   22 天前 via Android

黑阈看得到
pakro888
    3

pakro888   22 天前

绿色守护也能看到
lzsqq754318010
    4

lzsqq754318010   22 天前

感谢上面二位,我去瞧瞧。
john6lq
    5

john6lq   22 天前 via iPhone

对不起,请问 FCM 是?
voiyy
    6

voiyy   22 天前   ❤️ 2

libchecker app
JensenQian
    7

JensenQian   22 天前 via Android

@john6lq https://firebase.google.com/docs/cloud-messaging
YvanGu
    8

YvanGu   22 天前

斑朵,可以看到支持的各种推送
dingwen07
    9

dingwen07   22 天前 via iPhone

在国内 FCM 确实不如 APN
国产 App 兼容 FCM 的很少,你就当没有吧,印象中通知有点用的也就个闲鱼和微信国际版是走 FCM 的。。。
国外 App 还是很好用的,基本上有通知需求都会走 FCM 。
dingwen07
    10

dingwen07   22 天前 via iPhone

我是用绿色守护看,国产 app 全部不给自启动,国外 app 操作系统默认允许自启动

 

terabithia
    11

terabithia   22 天前

@dingwen07 走 FCM 也还是要允许自启吧,只是禁止后台。我现在用的 play 上下载的微信和钉钉可以走 FCM,其他的好像也没啥有推送的需求……
dingwen07
    12

dingwen07   22 天前 via iPhone

@terabithia #11 允许自启动是必须的,禁止后台我就不清楚了,反正我用的三星上面允许自己和禁止后台是一起的

微信必须得是外国手机号注册的,不然不走 FCM,我主帐号是国内的就很难受


terabithia
    13

terabithia   22 天前

@dingwen07 我刚刚发现我把 twitter 禁止自启好像也有推送。我的微信是国内手机号码注册的,我把微信也设置为走代理,而且是全局,可以走 FCM 的,不过这个要看代理的网络质量,好在我对推送也不是那么敏感,随缘吧
janus77
    14

janus77   21 天前

这个你做不到完全准确的
我就说一句,推送是主动发起的,就算他在代码层面支持了推送,某些消息运营就是不想在 fcm 这个渠道里面发,你能怎么办?
0A0
    15

0A0   19 天前 via Android

eu 版的 fcm 是完整支持的。
剩下就是各个 app 自己的锅了。cn 版需要打开自启动,或者同时打开后台。eu 版正常不需要,只是有的 app 不按标准来,才需要你检查自启动,后台等额外的操作。
比如 line,不管 cn 和 eu,开启自启动后都能正常推送 fcm 信息,属于正常。只是不正常的 app 太多了而已。

如何在 x86 上编译安卓系统,使其支持安装 ARM 架构的 apk?

如何在 x86 上编译安卓系统,使其支持安装 ARM 架构的 apk,并且能够在 x86 上使用模拟器运行?

 

实验室有工作需要修改安卓系统,然后在上面跑从安卓市场爬下来的大批量应用。

编译的安卓系统不支持 ARM

现在存在的问题是,从安卓市场里爬下来的应用都是 ARM 架构的,在编译好的安卓系统里安装时会报错 使用的安卓源码版本是android-9.0.0_r36 编译命令为

export OUT_DIR_COMMON_BASE=/out
source ./build/envsetup.sh
lunch sdk_phone_x86-userdebug
make -j20

# 编译完成后运行模拟器
emulator

之后用 adb 安装某新闻应用com.ss.android.article.news_8.3.3.apk会报错

Failure [INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113]

推测是 apk 用到了 arm 架构的二进制文件,没办法在 x86 架构上跑。在网上搜索了一下,发现 x86 好像也是能运行 arm 模拟器的,但是运行效率会很低。于是换了一个目标文件夹自己尝试了一下编译了一个新版本 ( lunch 使用*个默认选项 aosp_arm-eng )

make clobber
export OUT_DIR_COMMON_BASE=~/out-arm
source ./build/envsetup.sh
lunch aosp_arm-eng
make -j20

# 编译完成后运行模拟器
emulator

但是此时模拟器长时间黑屏,无法启动。不清楚是什么原因

Android Studio 中的系统映像支持 ARM

之后搜索了一下,发现在 Android 文档中提到了运行 ARM 的方法

Android 9 和 11 系统映像对 ARM 二进制文件的支持

如果您之前因为应用依赖 ARM 二进制文件而无法使用 Android 模拟器,那么现在您可以使用 Android 9 x86 系统映像或任何 Android 11 系统映像来运行应用,而无需再下载特定的系统映像来运行 ARM 二进制文件。这些 Android 9 和 Android 11 系统映像默认支持 ARM,而且与采用完全 ARM 模拟的系统映像相比,它们提供显著提升的性能。

做了以下尝试:

  1. 从 Android Studio 里获取的 Android9 和 Android11 系统映像都能进行com.ss.android.article.news_8.3.3.apk的安装。(说明从 AS 获取的系统映像支持 ARM 架构的 apk )
  2. 同时也试了一下 Android Studio 中 ARM 的模拟器( Pixel2 XL,android7.1.1 armv7 ),能运行起来,但是确实非常卡顿。这时使用 adb 安装com.ss.android.article.news_8.3.3.apk无法得到响应(输入命令后长时间内命令行无反馈)。对于低版本的 x86 模拟器的模拟器( Pixel2 XL,android7.1.1 x86 ),则会报错Failure [INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113](架构错误会报错,但架构正确也不一定能安装)

现在我的主要问题是以下两个:

  1. 是否一定能确认安装失败的原因是架构问题?
  2. 应该用什么配置编译安卓,使得 x86 的系统映像支持 arm ?或者是我缺失了什么文件吗?

谢谢各位

24 条回复    2021-07-21 17:18:21 +08:00

winterbells
    1

winterbells   14 天前

没看懂,大部分的安卓应用不都是四种架构都有吗( x86 x8664 arm arm64-va8 )

去 apkmirror 下?

strawberrydafu
    2

strawberrydafu   14 天前

@winterbells 研究是要对国内应用进行检测。检测的环境需要通过修改安卓系统来进行构建(获取部分库的调用信息)。因此需要跑的是国内的应用,但很多国内应用都没办法在 apkmirror 里找到。
目前来说*方便的方法就是从部分应用商店的网页爬,这时没办法选择架构,默认下载下来的版本就是对应 arm 架构的。如果能下载到 x86 架构的应用,这个问题也能绕过去。(我试着联系过几家国内的应用商店,不过都石沉大海了
vk42
    3

vk42   14 天前

基本无解,找老板要钱买个性能好点的电脑吧……
nicocho
    4

nicocho   14 天前

现在 Android 应用开发给 Apk 瘦身, *条就是条件允许的前提下,只保留 ARM-V7 之类动态库。
因为市面上 X86 的 Android 设备市场占有率基本可以忽略。
0o0O0o0O0o
    5

0o0O0o0O0o   14 天前 via iPhone

因为就是不支持,常用模拟器已经一些*少数的 x86 设备靠的是 libhoudini,Google 在较新版本的 android studio 的 emulator 里也提供了类似方案以适配高版本的 Android

https://github.com/geeks-r-us/anbox-playstore-installer

https://android-developers.googleblog.com/2020/03/run-arm-apps-on-android-emulator.html?m=1

trgl
    6

trgl   14 天前

退而求其次,弄个树莓派?
nieyujiang
    7

nieyujiang   14 天前

现在市面上还有 x86 的安卓手机么……
tomato1111
    8

tomato1111   14 天前 via Android

arm 转 x86 的安卓虚拟机效率*底。。。你那个黑屏很有可能只是系统还在启动。。。不是开玩笑。。。。 安卓官方这些模拟器,尤其是转译的没有任何实用价值。。。建议还是用第三方游戏模拟器的,比如 mumu,夜神,蓝叠之类的,他们兼容 arm 而且效率也可以
aneostart173
    9

aneostart173   14 天前

qemu 模拟 arm 啊。
NSAgold
    10

NSAgold   14 天前

houdini 二进制转换库
当初 intel 的 atom 平板用的这个来运行 arm 的应用

ch2
    11

ch2   14 天前

用 houdini 就行了,x86 转译 arm 效果还是不错的,只是有的 app 会检测架构是不是 x86,不是 arm 就不提供正常功能
imcczy
    12

imcczy   14 天前

1. 就是架构的问题
2. 这个情况太多,别人根本没法帮你下结论

此外,别信什么 houdini 什么的,此项目 Intel 早就不做了,多年未更新,你要大批量跑 App 必然会遇到 bug 。但*近 Google 官方貌似出了一个类似的,可以试试
其实你这个场景,华为的 ARM 服务器非常适合,支持 qemu+aosp7/9 或者 anbox,原生 arm 支持。48 核 916 或者 96 核 920 任君选

ReferenceE
    13

ReferenceE   14 天前 via Android

好家伙,你就是微软员工负责 win11 安卓子系统的是吧
0o0O0o0O0o
    14

0o0O0o0O0o   14 天前 via iPhone

@imcczy #12

houdini 是市面模拟器主流方案吧? bug 虽然有,但我觉得目前是比 Google 那个 arm translation 好太多了,缺点只是 Android 版本低。

我的体验是:

arm 的云手机(也包括你说的自己跑 qemu+aosp )才是真的难搞,那些做黑产的专项优化的云手机我不清楚,但我个人能买到的或者 github 能找到的此类方案,大部分适配真的成问题。比如 aws 上的 genymotion cloud arm,闪退率惊人,没有仔细研究,看日志大概都是有些东西没模拟全,还不如它的 x86 版本+libhoudini 。。。

而 anbox 的主要优势我觉得在于 lxc 和开源,论兼容(此处兼容和传统意义上的兼容有些不一样,要包括反检测)和商业模拟器是没法比的,它也不在意这一点,跑楼主的需求,会需要写大量的反检测。

https://www.genymotion.com/blog/just-launched-arm-native-android-in-the-cloud-environment-on-aws/

0o0O0o0O0o
    15

0o0O0o0O0o   14 天前 via iPhone

@imcczy
@0o0O0o0O0o #14

其实我也知道 arm+kvm 是上限很高的方案,x86 转译太容易被检测,只是我目前没有找到很成熟的方案或者产品,如果是我接触的局限,你可以推荐一下,我一直很向往云手机。。。

imcczy
    16

imcczy   14 天前

@0o0O0o0O0o #14

官方 emulator 就是 qemu 呀

成熟商用方案目前是没有的,尤其是有特殊需求的,得自己做。华为一直说要对外商用。
华为这套基础软硬件我们用着还行,当然前后做了很多定制的优化,以及外围服务等。
供参考: https://support.huaweicloud.com/kunpengcps/kunpengcps.html
PS:我也见过把几十块 rk3399 板集成在一起的” 服务器”…

strawberrydafu
    17

strawberrydafu   14 天前

谢谢各位回复。
我*开始是比较想知道如何编译出 android studio 中提供的镜像( android9 & 11 兼容 arm ),不过看起来 houdini 和 anbox 也满足需求,我这两天先尝试一下。
项目需要修改密码学库代码( JCE & JCA ),还不太清楚 Anbox 是否能够容易地进行相应修改
strawberrydafu
    18

strawberrydafu   14 天前

另外服务器相关的方案不太清楚开销是否能承受(项目要跑大量应用),直觉上讲优先级可能比较低
3dwelcome
    19

3dwelcome   13 天前

国内的 PC 模拟器基本上都是 houdini 技术,又不可能自己来写 arm -> x86 转译器。
ryh
    20

ryh   13 天前

买个 arm64 的 chromebook 来测试? 必须使用 x86 吗?
BrokenVns
    21

BrokenVns   13 天前

能申请经费的话,2000-3000 买块 Android 推荐的开发版( https://source.android.google.cn/setup/build/devices )或者弄台 M1(*快的 Android 模拟器)。源码编译的话我觉得可以考虑使用 cuttlefish 替代 QEMU,我自己的体验来说 cuttlefish 版比 qemu 版快一些。https://source.android.google.cn/setup/create/cuttlefish
MiketsuSmasher
    22

MiketsuSmasher   13 天前

如果只是调试,可以考虑用 BlissOS-x86,*新版本的安卓 9 镜像支持*大多数 arm 应用,虽然不知道他们的 houdini 是从哪里来的
Rheinmetal
    23

Rheinmetal   13 天前

小黄鱼捡工作室淘汰手机 然后刷机 这个方案省事一点 吧
zhanlanhuizhang
    24

zhanlanhuizhang   9 天前

你直接买个小米手机,刷个自己编译的系统。不然使用虚拟机就只有 x86,x86_64 。现在好像没有看懂 arm 的虚拟机。
友情链接: SITEMAP | 旋风加速器官网 | 旋风软件中心 | textarea | 黑洞加速器 | jiaohess | 老王加速器 | 烧饼哥加速器 | 小蓝鸟 | tiktok加速器 | 旋风加速度器 | 旋风加速 | quickq加速器 | 飞驰加速器 | 飞鸟加速器 | 狗急加速器 | hammer加速器 | trafficace | 原子加速器 | 葫芦加速器 | 麦旋风 | 油管加速器 | anycastly | INS加速器 | INS加速器免费版 | 免费vqn加速外网 | 旋风加速器 | 快橙加速器 | 啊哈加速器 | 迷雾通 | 优途加速器 | 海外播 | 坚果加速器 | 海外vqn加速 | 蘑菇加速器 | 毛豆加速器 | 接码平台 | 接码S | 西柚加速器 | 快柠檬加速器 | 黑洞加速 | falemon | 快橙加速器 | anycast加速器 | ibaidu | moneytreeblog | 坚果加速器 | 派币加速器 | 飞鸟加速器 | 毛豆APP | PIKPAK | 安卓vqn免费 | 一元机场加速器 | 一元机场 | 老王加速器 | 黑洞加速器 | 白石山 | 小牛加速器 | 黑洞加速 | 迷雾通官网 | 迷雾通 | 迷雾通加速器 | 十大免费加速神器 | 猎豹加速器 | 蚂蚁加速器 | 坚果加速器 | 黑洞加速 | 银河加速器 | 猎豹加速器 | 海鸥加速器 | 芒果加速器 | 小牛加速器 | 极光加速器 | 黑洞加速 | movabletype中文网 | 猎豹加速器官网 | 烧饼哥加速器官网 | 旋风加速器度器 | 哔咔漫画 | PicACG | 雷霆加速