• [问题求助] 【鲲鹏920 robox】【android 容器 opengles 2.0】编译的镜像是否支持opengl es 3.0
    环境:运行的服务端内核和编译android镜像都没有打exagear补丁在android容器中执行opengl es3.0编写的应用程序会失败,但是opengl es2.0的就可以正常运行。检测到android系统目前是opengl es 2.0的版本。请问robox是否可以支持opengl es 3.0?还有exagear补丁有适配完成吗?
  • [ARM原生] 求32位内核转码补丁【ExaGear ARM32-ARM64 for Android VM】
    我根据《鲲鹏 BoostKit ARM 原生使能套件》编译安卓模拟器,进行到文档 3.5.2 Android内核编译时提示合入32位转码内核部分的补丁。 a. 联系华为一线工程师获取补丁goldfish-4.4-dev.patch,获取路径如下:https:// support.huawei.com/enterprise/zh/kunpeng-computing/kunpengcomputing-media-pid-251431619/software/251882957。此下载已失效, 请问哪里可以下载?
  • [专题汇总] Android 安装包优化
    SVG 全称 Scalable Vector Graphics , 可缩放矢量图 ; 矢量图不会随着图像缩放 , 出现图像质量降低的情况 ;png , jpeg 等位图会随着图像缩放 , 出现模糊的情况 ;Android 中使用 SVG 矢量图 , 能极大的减少占用空间的大小 ;应用中使用的小图标 , 一般都使用 SVG 格式 ;Android 中生成 Vector 矢量图资源但是在 Android 中 , 不能直接使用标准的 SVG 文件 , 使用 Vector Assets 实现对 SVG 图片格式的支持 , Vector 矢量图也是 XML 文件 , 根节点必须是 <vector> , 并且内容格式也有一定的不同 ;SVG 图片的根节点是 <svg> ;Vector 资源的根节点是 <vector> ;在 Android Studio 中 , 右键点击 res 资源目录 , 选择 " New / Vector Asset " 选项 ,
  • [技术干货] HBuilder使用夜神模拟器调试Android应用
    打开HBuilder——工具——选项——HBuilder 将第三方安卓模拟器端口号改为62001即可如果是海马的话 改为26944
  • [技术干货] Android和IOS两个系统的手机APP安装测试
      安装测试  软件在不同操作系统(Android系统和IOS系统)上是否正常安装。  软件在不同版本的操作系统(如Android 5.0/Android 6.0/Android 7.0/Android8.0和iOS 9.0/iOS 10.0/iOS 11.0/iOS 12.0)上是否正常安装。  软件在不同的品牌手机(华为/三星/OPPO/VIVO等其他品牌手机)上是否正常安装。  卸载旧版本再安装(这个操作可以排插新版本的安装包是否丢失库,如果是覆盖安装的话会继续依赖旧库,导致问题发现不了)。  覆盖安装是否正常。  降级安装是否能成功。  磁盘空间不足时,是否可以正常安装,安装的现象是什么。  安装过程中是否可以手动取消。  安装过程中突然手机关机怎么处理。  卸载测试  按照手机自身的卸载流程卸载是否能正常卸载。  使用adb命令卸载是否可以卸载。  卸载过程中有没有异常提示。  卸载过程中突然关机是否卸载成功。  界面测试(UI)。  界面上的布局是否按照需求上设计。  界面内容是否符合文档需求,文字是否有乱码或者翻译问题。  图片、动画、边框、颜色、字体、背景、按钮、目录、菜单、弹框、列表等…  软件logo,颜色,名称。
  • [技术干货] 基于Android SQLite的升级详解
    做Android应用,不可避免的会与SQLite打交道。随着应用的不断升级,原有的数据库结构可能已经不再适应新的功能,这时候,就需要对SQLite数据库的结构进行升级了。SQLite提供了ALTER TABLE命令,允许用户重命名或添加新的字段到已有表中,但是不能从表中删除字段。并且只能在表的末尾添加字段,比如,为 Subscription添加两个字段:ALTER TABLE Subscription ADD COLUMN Activation BLOB;ALTER TABLE Subscription ADD COLUMN Key BLOB;另外,如果遇到复杂的修改操作,比如在修改的同时,需要进行数据的转移,那么可以采取在一个事务中执行如下语句来实现修改表的需求。1. 将表名改为临时表ALTER TABLE Subscription RENAME TO __temp__Subscription;2. 创建新表CREATE TABLE Subscription (OrderId VARCHAR(32) PRIMARY KEY ,UserName VARCHAR(32) NOT NULL ,ProductId VARCHAR(16) NOT NULL);3. 导入数据INSERT INTO Subscription SELECT OrderId, “”, ProductId FROM __temp__Subscription;4. 删除临时表DROP TABLE __temp__Subscription;通过以上四个步骤,就可以完成旧数据库结构向新数据库结构的迁移,并且其中还可以保证数据不会应为升级而流失。
  • [技术干货] Android 实现九宫格抽奖功能
    public class NineLuckPan extends View { private Paint mPaint; private ArrayList<RectF> mRects;//存储矩形的集合 private float mStrokWidth = 5;//矩形的描边宽度 private int mRectSize;//矩形的宽和高(矩形为正方形) private int[] mItemColor = {Color.GREEN, Color.YELLOW};//矩形的颜色  public NineLuckPan(Context context) {  this(context, null); }  public NineLuckPan(Context context, @Nullable AttributeSet attrs) {  this(context, attrs, 0); }  public NineLuckPan(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {  super(context, attrs, defStyleAttr);  init(); }  /**  * 初始化数据  */ private void init() {  mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);  mPaint.setStyle(Paint.Style.FILL);  mPaint.setStrokeWidth(mStrokWidth);  mRects = new ArrayList<>(); }  @Override protected void onSizeChanged(int w, int h, int oldw, int oldh) {  super.onSizeChanged(w, h, oldw, oldh);  mRectSize = Math.min(w, h) / 3;//获取矩形的宽和高  mRects.clear();//当控件大小改变的时候清空数据  initRect();//重新加载矩形数据 }  /**  * 加载矩形数据  */ private void initRect() {  //加载前三个矩形  for (int x = 0; x < 3; x++) {   float left = x * mRectSize;   float top = 0;   float right = (x + 1) * mRectSize;   float bottom = mRectSize;   RectF rectF = new RectF(left, top, right, bottom);   mRects.add(rectF);  }  //加载第四个  mRects.add(new RectF(getWidth() - mRectSize, mRectSize, getWidth(), mRectSize * 2));  //加载第五~七个  for (int y = 3; y > 0; y--) {   float left = getWidth() - (4 - y) * mRectSize;   float top = mRectSize * 2;   float right = (y - 3) * mRectSize + getWidth();   float bottom = mRectSize * 3;   RectF rectF = new RectF(left, top, right, bottom);   mRects.add(rectF);  }  //加载第八个  mRects.add(new RectF(0, mRectSize, mRectSize, mRectSize * 2));  //加载第九个  mRects.add(new RectF(mRectSize, mRectSize, mRectSize * 2, mRectSize * 2)); }  @Override protected void onDraw(Canvas canvas) {  super.onDraw(canvas);  drawRects(canvas); }  /**  * 画矩形  *  * @param canvas  */ private void drawRects(Canvas canvas) {  for (int x = 0; x < mRects.size(); x++) {   RectF rectF = mRects.get(x);   if (x == 8) {//中心的矩形背景为白色    mPaint.setColor(Color.WHITE);    canvas.drawRect(rectF, mPaint);   } else {    mPaint.setColor(mItemColor[x % 2]);    canvas.drawRect(rectF, mPaint);   }  } }}
  • [技术干货] 你的测试用例中,是否包含App前后台切换
    你的测试用例中,是否包含App前后台切换App前后台切换是我们平时常用的一个操作,比如:按手机的home键将应用置于后台、直接按手机电源键关闭屏幕或者通过最近打开的应用列表切换应用等,由此,我们可以得出结论:当app置于前台时,它的页面对我们是可见的;当app置于后台时,它的页面对我们是不可见的。  无论对于Android还是IOS,app前后台切换的流程都很长,因为牵扯到应用生命周期的管理,因此在测试过程中,可以帮我们发现一些意外的惊喜。不知道在你的App测试用例中是否包含前后台切换?如果没有,那从现在开始,你一定要将它补充到测试用例中。  这篇文章,会带着大家了解Android和IOS在前后台切换过程中,都经历了什么。这样当你在测试过程中,碰到相关问题时,也能有章可循。  Android前后台切换原理  早期的Android只有Activity用来展示页面元素,直到2011年Android3.0推出了Fragment的概念,不过Fragment并没有立即被用起来,大部分的开发者还是用Activity写Android页面,个人感觉是到Android4.x之后,Fragment才更多的运用到工作中。不过Fragment并不能单独的存在,其必须依赖在某一个Activity上,所以到后来GitHub上出现了好多Activity+Fragment的基础框架,其核心思想是:一个BaseActivity+多个Fragment。BaseActivity主要用于管理Fragment的生命周期,而Fragment用于实现不同的页面。前后台切换思路整理  对于没有任何移动端开发经验的人来说,Android和IOS应该也不大理解其中的原理。所以我根据自己的经验,帮大家整理一些前后台切换的测试的思路及出发点,供大家参考:  因为有重复调用同一个方法的可能,所以开发可能会用到标志位(用于标识是否是第一次调用)等,因此可以验证如下点:  界面上的逻辑是否正确,比如:数据不一致。  界面展示是否正确,比如:某些按钮不应该展示,却展示了。  因为有可能新创建对象,所以需要关注是否有内存泄漏存在。  是否会造成异常的网络请求,比如重复请求同一接口。  在app将要置于后台时,会保存当前界面上的数据,等到app再次回到前台时,重新渲染:  验证前后台切换后,界面数据是否被清空。  另外界面数据展示是否正常。  其他  是否会出现crash。  是否会造成app的专项数据异常,比如:cpu、耗电量等。  总结  软件测试,其实一定程度上就是用探索性的思路,挖掘更不容易出现的"惊喜",因此,我觉得"App前后台"切换绝对是一个不错的探索思路。
  • [技术干货] Android批量插入数据到SQLite数据库的方法
    Android中在sqlite插入数据的时候默认一条语句就是一个事务,因此如果存在上万条数据插入的话,那就需要执行上万次插入操作,操作速度可想而知。因此在Android中插入数据时,使用批量插入的方式可以大大提高插入速度。有时需要把一些数据内置到应用中,常用的有以下几种方式:1、使用db.execSQL(sql)这里是把要插入的数据拼接成可执行的sql语句,然后调用db.execSQL(sql)方法执行插入。public void inertOrUpdateDateBatch(List<String> sqls) { SQLiteDatabase db = getWritableDatabase(); db.beginTransaction(); try { for (String sql : sqls) { db.execSQL(sql); } // 设置事务标志为成功,当结束事务时就会提交事务 db.setTransactionSuccessful(); } catch (Exception e) { e.printStackTrace(); } finally { // 结束事务 db.endTransaction(); db.close(); } } 2、使用db.insert("table_name", null, contentValues)这里是把要插入的数据封装到ContentValues类中,然后调用db.insert()方法执行插入。db.beginTransaction(); // 手动设置开始事务 for (ContentValues v : list) { db.insert("bus_line_station", null, v); } db.setTransactionSuccessful(); // 设置事务处理成功,不设置会自动回滚不提交 db.endTransaction(); // 处理完成 db.close() 3、使用InsertHelper类这个类在API 17中已经被废弃了InsertHelper ih = new InsertHelper(db, "bus_line_station"); db.beginTransaction(); final int directColumnIndex = ih.getColumnIndex("direct"); final int lineNameColumnIndex = ih.getColumnIndex("line_name"); final int snoColumnIndex = ih.getColumnIndex("sno"); final int stationNameColumnIndex = ih.getColumnIndex("station_name"); try { for (Station s : busLines) { ih.prepareForInsert(); ih.bind(directColumnIndex, s.direct); ih.bind(lineNameColumnIndex, s.lineName); ih.bind(snoColumnIndex, s.sno); ih.bind(stationNameColumnIndex, s.stationName); ih.execute(); } db.setTransactionSuccessful(); } finally { ih.close(); db.endTransaction(); db.close(); } 4、使用SQLiteStatement查看InsertHelper时,官方文档提示改类已经废弃,请使用SQLiteStatementString sql = "insert into bus_line_station(direct,line_name,sno,station_name) values(?,?,?,?)"; SQLiteStatement stat = db.compileStatement(sql); db.beginTransaction(); for (Station line : busLines) { stat.bindLong(1, line.direct); stat.bindString(2, line.lineName); stat.bindLong(3, line.sno); stat.bindString(4, line.stationName); stat.executeInsert(); } db.setTransactionSuccessful(); db.endTransaction(); db.close(); 第三种方法需要的时间最短,鉴于该类已经在API17中废弃,所以第四种方法应该是最优的方法。
  • [技术干货] Android(twenty-one)
    网络编程Android应用作为一个客户端程序绝大部分都是需要进行网络请求和访问的,而http通信是一种比较常见并常用的通信方式。在Android中原生http网络编程中有两种实现方式,一种是使用HttpURLConnection,另一种就是使用HttpClient。现在使用更广泛的是HttpURLConnection这两种实现方式的大体过程都是:Android客户端向服务器发出请求。服务端接收请求并响应。服务端返回数据给客户端。在Http通信中有POST和GET两种方式,其不同之处在于GET方式可以获得静态页面,同时可以将请求参数放在URL字符串后面,传递给服务器;而POST方式的参数则是放在Http请求中的。因此,无论你是用哪一种HTTP实现方式都需要明确所使用的请求方式。ttpURLConnection根据使用目的不同,在具体使用时会稍有区别。从Internet获取网页,即向URL发送请求,将网页以流的形式读回本地。从Internet获取文件,即利用HttpURLConnection对象从网络中获取文件数据。向Internet发送请求参数,即向服务器传递参数,即向服务器传递参数向Internet传送XML数据。(使用HTTP的的方式传输文件,一般文件大小在5M一下,HTTP通信方式不适合传输大文件,对大文件的传输最好使用Socket通信方式,以保证程序的稳定性。)
  • 华为,迈出了摒弃 Android 的第一步
    鸿蒙 OS 的诞生,不是为了替代 Android,而是超越 Android,打造万物互联时代的下一代操作系统。华为消费者业务软件部总裁王成录在 16 日的鸿蒙 OS 手机开发者 Beta 版发布会上激动地说。自 2019 年对外发布以来,鸿蒙 OS 一直吸引着外界的目光。其中有支持,也不乏质疑。华为并不是第一个自研手机 OS 的国产企业,却被聚光灯照在身上最多。在面向开发者推出鸿蒙 OS 的手机 Beta 版之后,新浪科技获悉,明年一季度发布的华为 P50 将正式搭载鸿蒙 OS,明年华为手机以及其它自研设备也将全面升级鸿蒙 OS。不过,用户升级鸿蒙 OS 之后,手机将仍然能够兼容和运行 Android App,以留出过渡期。而等待鸿蒙 OS 生态成熟后,华为将全面向鸿蒙切换。兼容 Android  不同于 Android在发布会现场,新浪科技也见到了为演示鸿蒙 OS 特性而展出的已经升级鸿蒙 OS 的华为手机。从体验上来看,这款手机在操作习惯、界面设计等方面与目前华为基于 Android 开发的 EMUI 区别不大。并且在内置的华为应用商店中,也可以自由下载和运行 Android App。这也引发了一些网友争议:「是不是就是 Android 系统改个壳?」一位现场工作人员向新浪科技表示,演示机只是为了展示基于鸿蒙 OS 的分布式能力,未来正式版的鸿蒙 OS 在手机上肯定会有全新的界面设计。实际上,从华为相关技术专家以及现场展示的功能上来看,鸿蒙 OS 与 Android 系统确实有着诸多差异化。王成录认为,过去近 20 年基于手机的移动互联网生态发展迅速,但无论是手机的发货量还是移动 App 的数量,以及用户在手机上消耗的时间,从 2018 年开始就不再增长,甚至在近两年走向下降。这意味着基于手机的生态已经来到了一个临界点,他判断,未来是 IoT 的时代。但在 IoT 设备数量快速增长的同时,仍然面临很多问题。目前所有的应用生态几乎全部基于智能手机平台。智能手表、智能电视、车机等 IoT 设备的生态发展非常缓慢,「很多人家里面很可能都有几台音箱,但是这些音箱用了一周,最多两周可能就会被遗忘了。这背后的原因是音箱上的应用太少了,如果我们解决不了这个问题,IoT 的时代是不可能真正来临的。」在王成录看来,IoT 生态发展缓慢最核心的原因就是操作系统的高度碎片化。即使是同一家企业生产的 IoT 设备之间连接、配网、使用都非常困难,更不用说不同企业生产的不同 IoT 设备。每个 IoT 设备的系统不同、应用不同,开发者面临诸多困难,自然应用数量也就少得可怜。王成录多次对外强调,鸿蒙 OS 的诞生,不是为了替代Android,而是超越Android,打造万物互联时代的下一代操作系统。在现场展区,华为展示了智能家居、互动娱乐、泛终端社交购物、移动办公跨端接续、智慧教育、智慧出行、运动健康这七大鸿蒙 OS 的新应用场景。以泛终端社交购物为例,据京东零售产品总监王志强介绍,与 Android 版本相比,鸿蒙版本年的京东 App 可以解决诸多目前的购物痛点。比如在购物比价时,消费者不再需要频繁切换产品页面,可以将产品详情页直接流转至平板上,手机和平板可以同时对比不同的商品;在直播购物场景下,可以将直播流转至智慧屏上,手机则被释放出来;在拼单场景下,好友或者家人可以共享屏幕讨论商品,甚至共享购物车一起拼单凑满减,并且各自生成订单,各自结算付款。在移动办公方面,科大讯飞消费者事业群听见科技 CTO 苏文畅介绍,科大讯飞的录音笔搭载鸿蒙 OS 之后,手机一碰即用,无需下载 App;碰一碰还可以将录音文件快传至手机,甚至可以将实时转写跨设备流转,手机端的实时转写可以流转至智慧屏端实时显示。从现场演示的案例来看,鸿蒙 OS 确实推出了一些 Android 并未实现、或者实现起来颇为复杂的功能。并且与 Android 系统以手机为主相比,手机只是鸿蒙 OS 目标设备中的一部分,手机+IoT 设备在功能、交互等方面的互联互通,才是鸿蒙 OS 的核心目标所在。构建生态 迈出第一步王成录坦言,做一个操作系统,技术上不难,生态才是核心。生态涉及的广度、深度和复杂度远远超过所有的单个技术。另外,如果配合不上产业发展变现的机会,强做生态也非常难成功。发布的第二年,鸿蒙 OS 的落地仍然处于早期阶段。对于一个处于商业化前期的 OS 而言,要吸引企业和个人开发者投入人力、物力开发新应用,极为不易。以京东为例,要实现上述不同于 Android 版本的新功能,开发者需要基于鸿蒙 OS 的开发者工具单独开发一个版本,也即是说,虽然鸿蒙 OS 能兼容 Android App,但企业需要同时开发和维护 Android 版本和鸿蒙 OS 版本的 App。据京东零售产品总监王志强透露,在鸿蒙版本的京东 App 开发中,京东方面投入了包括项目团队、产品团队和研发团队在内的 26 人;华为方面也投入了 10 人以上的技术合作和支持团队。在王成录的演讲中,京东也被当做典型案例分享。他表示,有了鸿蒙 OS,京东购物的应用就可以有手机以外更多的设备入口,可以在冰箱上、电视上,甚至所有带屏、带音响、带触控的亿级设备上运行。这对于寻求增量用户和场景的京东而言,无疑具备巨大的吸引力。但华为也遇到了一些阻力,其中就有企业曾参与为鸿蒙 OS 开发 App,中途因为人力投入等原因又转而放弃。另外,生态的建设也非一日之功。在现场展示的互动娱乐案例中,华为与优酷联合开发了多项跨屏互动新功能。其中手机端可以在 150°范围内自由操控平板端的视频观看角度,不过这一方面需要专门制作这类片源,另外由于计算方式的差异,手机与智慧屏还未实现该功能,双方目前正在开展联合研究。为了激励企业和个人开发者加入,华为也推出了一系列措施。由于 IoT 设备品类繁多且操作系统不同,开发者需要为手机、平板、手表等不同设备重复开发应用,且不同尺寸屏幕的设计和交互适配困难。而华为此次提供了一系列构建全场景应用的完整框架和开发工具平台,帮助开发者实现了一次开发多端部署,分布式的 UI 框架也能够让应用布局自适应多种屏幕尺寸。华为还宣布启动鸿蒙 OS 开发者创新大赛,将通过 150 万元奖金、20 位专业导师指导激发更多创新应用诞生。根据华为方面公布的数据,目前已有京东、银联、优酷、科大讯飞等 120 多家企业开始基于鸿蒙 OS 进行开发;超过 10 万开发者已参与华为赋能活动,为鸿蒙 OS 生态建设做贡献;接下来,华为也将在上海、广州等地继续举办开发者日活动,向开发者分享鸿蒙 OS 开发技术和应用案例。鸿蒙 OS 手机 何时问世?虽然华为一直对外强调,鸿蒙 OS 是面向 IoT 设备而生。但在谷歌 GMS 持续断供之下,华为手机何时搭载鸿蒙 OS,成为外界关注的焦点。华为消费者业务软件部副总裁杨海松透露,按照目前的进度,明年所有华为自研设备都将升级鸿蒙 OS,消费者不需要购买新的设备体验鸿蒙系统。同时,明年华为也将发布基于鸿蒙 OS 的智能手机。新浪科技从知情人士处获悉,明年一季度华为手机将正式搭载鸿蒙 OS,华为 P50 上市时会全面搭载鸿蒙 OS。另外,明年华为手机搭载鸿蒙 OS 之后,会采用双架构,仍然兼容 Android App,但要体验鸿蒙 OS 差异化的分布式特色功能,就需要安装鸿蒙版本的 App。「可能会单独开设鸿蒙 OS 的应用专区,留一个过渡期,让开发者逐步迁移,也是照顾用户的使用体验」,该人士说,等待鸿蒙 OS 生态成熟后,华为将进行全面切换。不过,从华为展示的鸿蒙 OS 的新功能来看,单单手机端搭载鸿蒙 OS 远远不够,在更多 IoT 设备上应用鸿蒙 OS,这些功能才能在端到端之间实现。今年双 11,就有九阳、美的、老板电器的多款搭载鸿蒙 OS 的 IoT 设备开售。根据王成录公布的计划,鸿蒙 OS 明年要覆盖 40+主流品牌 1 亿台以上的设备。此前华为消费者业务 CEO 余承东也公布过鸿蒙 OS 的开源计划,将在 2021 年 4 月面向内存 128MB-4GB 的终端设备开源;2021 年 10 月以后将面向 4GB 以上所有设备开源。如果华为的计划顺利推进,可以预见的是,明年鸿蒙 OS 的生态也将迎来新的发展阶段。「我个人非常有信心,也希望把这个信心传递给中国所有移动互联网产业的从业人员。」王成录说,中国网络最好、IoT 模块制造能力全世界最强、应用创新全世界最强、从业者全世界最多、市场全世界最大,在未来 IoT 的时代,中国企业有望开创一个全新的世界。
  • [技术干货] 在鲲鹏云手机创建android模拟器后,如何进行调试呢?
    在鲲鹏服务器上使用android delete avd -n test_7android create avd --name test_7 --target android-24 --abi arm64-v8a --device "Nexus 4" --skin 720x1600  --forceemulator -avd  test_7 -skip-adb-auth  -no-window -cores 4 -writable-system -partition-size 16384  -verbose -gpu host -qemu  -enable-kvm -m 8192          -vnc  :86 创建云手机后,如何调试android 模拟器的代码
  • [全栈开发者] 【已结束】【移动应用开发全栈成长计划】Android入门篇•最终考核打卡帖
    【移动应用开发全栈成长计划】Android入门篇•最终考核打卡帖打卡已结束,考核结果正在统计中不知不觉中,移动应用开发全栈成长计划已与大家见面一个月的时间了,所有课程内容都已经全部更新完毕。大家积极的学习态度,遇到问题及时在学习群内提出,让本阶段全栈课程可以顺利完成再次感谢大家:◎积极完成每章的随堂测验打卡,做到了课后的知识强化与巩固;◎认真完成每周读书笔记打卡,将自己的学习心得总结下来;◎有活力地问答官打卡,分享自己在学习中的问题和经验。十分感谢大家能顺利完成第一阶段的学习内容,我们也在大家学习的过程中,总结了优缺点,让大家可以做一个全能型移动端开发者。所以,对下阶段课程作出调整和更新,敬请期待哦~~~现在,大家迎来了第一阶段考核,让我们来看一下考核的具体内容▶考核打卡时间:2020.12.08-2020.12.20 23:59 ▶考核途径:点击下方链接,选择【Android入门篇考核作业】https://classroom.devcloud.huaweicloud.com/classdetail/697ea02042c44116967185f87768b75a/job▶考核要求:进入考核页面后,点击“查看习题描述”,详细阅读考核要求和评判标准后按要求进行考核,提交机会有2次,请大家认真作答。▶打卡要求:由于本阶段涵盖知识点比较多,所以上传形式为按考核要求在本地编辑器运行后,将压缩包上传至classroom后台,并提交。并且按以下要求进行截图打卡!只有在按照要求进行打卡才会得到第一阶段考核证书!只有在按照要求进行打卡才会得到第一阶段考核证书!只有在按照要求进行打卡才会得到第一阶段考核证书!▶打卡方式:方式:***正确的回复格式:华为云账号+姓名(显示在考核证书上面名字)+提交完考核页面截图1张华为云ID:grandmaster  姓名:华为云小助手01重要提示:请严格按照回复示例进行回复,本次为阶段末考核项目,如果没有按照要求的格式进行回复,版主将不予提示,同时不计入考核结果,会影响考核证书及奖品的发放哦~▶考核评分:提交考核内容后由专家老师根据评分标准评分,满分100分,分数将于开始审核后15个工作日内公布,分数会公布在博客里面,具体请大家留意小助手信息。▶评分标准:1、项目整体编译无报错、运行效果流畅2、页面与华为云APP登录页越接近,得分越高3、代码书写越规范,得分越高4、扩展越丰富,得分越高▶考核奖励:◎参与最后考核并按要求回复本帖,就可得到电子版证书(证书上会根据大家的回复的真实姓名填写信息,请大家在留信息时注意)参与考核,人人有份,证书由1号小助手微信点对点发放,没添加小助手企业微信的伙伴可以扫描下方二维码添加,证书将在第一阶段结束后15个工作日内发放,请大家耐心等待小助手的通知哦~(注意:凭各阶段电子证书最后可兑换实体证书哦~)◎考核分数≥60分并回复本帖,另外奖励华为云定制敏捷扑克牌(数量有限,先到先得,按回帖时间发放,占楼无效!)◎本阶段会有专家老师评审出1位“最佳代码”(提交代码分数最高,同分看打卡回帖提交时间)获奖者,还会额外得到华为云无线鼠标哦~◎特别提示:参加了移动应用开发所有阶段考核的同学们,最后可凭每阶段证书兑换整阶段实体证书一份,请大家关注后续规则!        ◎参与考核即可获得20积分累计到总积分中,赢取最后积分大奖;大家别忘了随堂测验,读书笔记和问答官排位赛回复打卡截止日期为12月20日23:59,抓紧时间打卡呀~最佳问答官还可能得到华为云定制书包哦~积分排行细则积分排行榜奖品全阶段累计积分奖励活动注意事项1.由于本帖回复内容为阶段考核测试内容,并涉及到个人隐私,已设置回帖仅版主可见,请大家放心回复2.请大家务必在考核规定时间12月20日 23:59内完成考核回帖打卡,否侧将影响证书和奖品的发放3.积分和考核奖品信息我们会在考核阶段结束后15个工作日内整理完毕,发放奖品
  • [分享交流] 编译时提示“android library projects cannot be launched”错误的解决方法
    编译时提示“android library projects cannot be launched”错误的解决方法
  • [全栈开发者] 【已结束】【移动应用开发全栈成长计划】Android入门篇 · 每周学习笔记征集帖
    亲爱的开发者们大家心心念念的【移动应用开发全栈成长计划】已开课我们也特别为大家设置了【学习任务打卡】环节为的就是让大家巩固学习成果,紧跟学习进度请将需要完成的每周学习笔记按要求回复到本帖下方按要求格式回复即可获得积分累计阶段奖品,还能有机会获得附加幸运奖哦~征集时间2020.11.16-2020.12.17 23:59征集要求在本帖中,回复自己本周课程内容的学习笔记回复格式:华为云ID+第几周笔记+笔记内容,并分享些读书心得(字数≥200字)示例图如下:奖励方式每周每篇有效笔记可获得5积分阶段学习将以积分排行榜的形式,对前300名小伙伴进行奖励哦!此外还有附加奖励,每周在本周内提交学习笔记的用户中,抽取10位幸运奖奖励华为云定制文件收纳包 保温杯已供不应求,我们的奖品暂时更换成文件收纳包哦~各阶段积分排行榜奖品三个阶段总积分排行榜奖品 活动注意事项1. 学习任务提交后,小助手会在本阶段学习周期内,按序完成审核,并增加活动积分;2. 本次活动通过完成提交学习笔记任务,可获得的积分上限为5积分/每周;3. 请务必按照上述要求提交内容,以免影响积分增加;4. 若积分值相同则以完成学习任务的时间先后排序,其中任务完成时间的判定优先级为:阶段考核>问答官>分享转发>每周学习笔记>每章随堂测验;5. 其他积分获取方式请查看活动社群公告。想了解更多关于全栈成长计划课程内容请移步主帖:https://bbs.huaweicloud.com/forum/thread-84766-1-1.html除了本帖任务,其他学习任务可以通过以下链接进行查看:查看随堂测验打卡帖:https://bbs.huaweicloud.com/forum/thread-87346-1-1.html查看问答官排位打卡帖:https://bbs.huaweicloud.com/forum/thread-87342-1-1.html