上海 [ 更换 ]
热门城市
北京上海广州深圳成都杭州南京武汉天津西安重庆青岛沈阳长沙大连厦门无锡福州济南宁波昆明苏州郑州长春合肥南昌哈尔滨常州烟台南宁温州石家庄太原珠海南通扬州贵阳东莞徐州大庆佛山威海洛阳淮安呼和浩特镇江潍坊桂林中山临沂咸阳包头嘉兴惠州泉州三亚赣州九江金华泰安榆林许昌新乡舟山慈溪南阳聊城海口东营淄博漳州保定沧州丹东宜兴绍兴唐山湖州揭阳江阴营口衡阳郴州鄂尔多斯泰州义乌汕头宜昌大同鞍山湘潭盐城马鞍山襄樊长治日照常熟安庆吉林乌鲁木齐兰州秦皇岛肇庆西宁介休滨州台州廊坊邢台株洲德阳绵阳双流平顶山龙岩银川芜湖晋江连云港张家港锦州岳阳长沙县济宁邯郸江门齐齐哈尔昆山柳州绍兴县运城齐河衢州太仓张家口湛江眉山常德盘锦枣庄资阳宜宾赤峰余姚清远蚌埠宁德德州宝鸡牡丹江阜阳莆田诸暨黄石吉安延安拉萨海宁通辽黄山长乐安阳增城桐乡上虞辽阳遵义韶关泸州南平滁州温岭南充景德镇抚顺乌海荆门阳江曲靖邵阳宿迁荆州焦作丹阳丽水延吉茂名梅州渭南葫芦岛娄底滕州上饶富阳内江三明淮南孝感溧阳乐山临汾攀枝花阳泉长葛汉中四平六盘水安顺新余晋城自贡三门峡本溪防城港铁岭随州广安广元天水遂宁萍乡西双版纳绥化鹤壁湘西松原阜新酒泉张家界黔西南保山昭通河池来宾玉溪梧州鹰潭钦州云浮佳木斯克拉玛依呼伦贝尔贺州通化朝阳百色毕节贵港丽江安康德宏朔州伊犁文山楚雄嘉峪关凉山雅安西藏四川广东河北山西辽宁黑龙江江苏浙江安徽福建江西山东河南湖北湖南海南贵州云南陕西甘肃青海台湾内蒙古广西宁夏香港澳门
培训资讯网 - 为兴趣爱好者提供专业的职业培训资讯知识

车载Android应用开发入门指南

开发 指南

01.

前言 - 移动互联网退潮下的汽车大战

将时间回退到2017年我大学刚毕业时,彼时移动互联网就已经开始退潮,各大个培训机构也纷纷停止了Android相关的培训,曾经热火朝天的应用开发从那时起,就开始走向下坡路,小程序以及众多跨平台框架也让市场对Android原生开发的需求逐年降低,市场需求的降低也造就了Android开发的面试变得史无前例的“卷”。

终于我在2019年选择离开了互联网,投身当时还不是非常火热的车载Android领域继续从事Android原生开发。而这一年中国首个外商独资的整车制造项目,“上海特斯拉超级工厂”开工了。

特斯拉在智能化和电子化上的巨大优势将智能汽车推向了一个全新的高度,先进的自动驾驶以及BMS电池管理系统,深深震撼了全世界的人,在当时的国人眼中特斯拉几乎就是新能源汽车的代名词,时至今日,Model Y和Model 3已也依然是新能源汽车领域的畅销车型。

众所周知汽车工业是发达国家重要的经济支柱,而中国是世界上最大汽车生产和销售国,特斯拉的热销立马就引发了一场鲶鱼效应,国内外的汽车制造商纷纷开始布局智能化汽车,汽车工业走向了软件定义汽车的时代。软件定义汽车的核心思想是,决定未来汽车的是以人工智能为核心的软件技术,车载软件在汽车领域的重要性首次被拔高到了前所未有的高度,就这样一场轰轰烈烈的车载软件技术大战上演了。

02.

智能汽车座舱基本结构

在从事车载Android应用开发前,必须要对汽车座舱的基本结构有一个大体的认知,只有意识到汽车座舱是一种与手机完全不同的架构,才能更好的助力我们日后学习车载Android应用的开发。下面就来介绍一个比较主流的车载操作系统架构。

注意:并不是所有的车载操作系统都采用了下面的架构,比如,特斯拉采用的是基于Linux一套架构。

上面就是目前主流汽车座舱采用技术架构,我们从上到下依次介绍:

T-BOX

T-Box又称TCU(车联网控制单元),指安装在汽车上用于控制跟踪汽车的嵌入式系统,是车载信息交互系统核心部件,有了它汽车才能实现联网功能,所以也起到中央网关的作用。通常包括GPS单元、移动通讯外部接口电子处理单元、微控制器、移动通讯单元以及存储器等。

对车辆,T-Box可提供车辆故障监控、电源管理、远程升级、数据采集、智慧交通等功能,对车主,T-Box可为提供车辆远程控制、安防服务等功能。T-BOX属于外围硬件,与中控、仪表并不集成在一个主板上。

SOC

SoC的定义多种多样,由于其内涵丰富、应用范围广,很难给出准确定义。一般说来, SoC称为系统级芯片,也有称片上系统(System on Chip),意指它是一个产品,是一个有专用目标的集成电路,其中包含完整系统并有嵌入软件的全部内容。

车载Soc和我们最常见的手机Soc非常类似,内部集成了CPU和GPU。目前最主流的车载Soc是高通的SA8155,它就是高通在手机Soc骁龙855的基础上发展而来的。

MCU

微控制单元(Microcontroller Unit;MCU) ,又称单片微型计算机(Single Chip Microcomputer )或者单片机,是把中央处理器(Central Process Unit;CPU)的频率与规格做适当缩减,并将内存(memory)、计数器(Timer)、USB、A/D转换、UART、PLC、DMA等周边接口,甚至LCD驱动电路都整合在单一芯片上,形成芯片级的计算机。

一般汽车座舱内,集成SOC的主板上也会额外集成一个或多个MCU。

AutoSAR

Adaptive AutoSAR 是一种适用于高级自动驾驶的软件架构平台,提要提供高性能的计算和通信,提供灵活的软件配置,支撑应用的更新。

Adaptive AutoSAR 的主要架构分为硬件层、ARA(AutoSAR Run-timeFor Adaptive实时运行环境)以及应用层。

应用层包含的应用程序模块(AA)运行在ARA之上,每个AA以独立的进程运行。ARA由功能集群提供的应用接口组成,他们属于自适应平台。自适应平台提供Adaptive AutoSAR 的基本功能和标准服务。

每个AA可以向其他AA发生服务。基于这种架构,整车的功能之间可以解耦。

Hypervisor

一种运行在基础物理服务器和操作系统之间的中间软件层,可允许多个操作系统和应用共享硬件。也可叫做VMM( virtual machine monitor ),即虚拟机监视器。目前主流的汽车座舱,都是同时在一个Soc上运行着两个不同的操作系统,一个是显示汽车仪表盘的QNX系统,另一个用于车载信息娱乐的Android系统,其底层技术原理就是Hypervisor。

QNX

QNX是一种商用的、遵从POSIX规范的类Unix实时操作系统,目标市场主要是面向嵌入式系统,具备高运行效率、高可靠性特点,并在工控领域拥有近40年的使用经验,被广泛应用于汽车、轨道交通、航空航天等对安全性、实时性要求较高的领域。

QNX在车载操作系统市场的占有率超过75%,在更注重生态和内容的车载娱乐系统占有率也超过60%,而在强调安全性的仪表盘以及驾驶辅助领域,QNX的市占率更是达到了近100%。

2010年QNX被加拿大RIM公司收购,而这家公司就是黑莓BlackBerry的母公司。

SOA

SOA(Service-OrientedArchitecture)是一种基于业务实现的粗粒度松耦合的面向服务的分布式架构,即实现业务和技术的分离,又实现业务和技术的自由组合。

以位置服务为例,很多车内应用会用到位置信息,像天气、拍照、导航,这些应用根据自身服务有不同的需求,对位置信息的处理各不相同,SOA就可以很好地解决这个问题。

SOA原本是服务器开发中用到的技术,现如今也被用在车载操作系统领域,但是目前关于SOA的技术规范比较混乱,国内主机厂商外对于SOA的实现方式也有区别。

SOA并不车载操作系统必须的,其实目前为止已经上市的车型中,很少采用了SOA架构,所以它还只是车载操作系统未来的一个发展方向。

2021年上汽零束率先发布业界首个车载SOA软件架构规范。威马汽车科技集团旗下的W6号称国内首款采用SOA的量产车。

车载以太网

车载以太网是一种用以太网连接车内电子单元的新型局域网技术,与传统以太网使用4对非屏蔽双绞线电缆不同,车载以太网在单对非屏蔽双绞线上可实现100 Mbit /s,甚至1Gbit/s的传输速率,同时还满足汽车行业对高可靠性、低电磁辐射、低功耗、带宽分配、低延迟以及同步实时性等方面的要求。

车载以太网的设计是为了满足车载环境中的一些特殊需求。例如:满足车载设备对于电气特性的要求(EMI/RF);满足车载设备对高带宽、低延迟以及音视频同步等应用的要求;满足车载系统对网络管理的需求等。因此可以理解为,车载以太网在民用以太网协议的基础上,改变了物理接口的电气特性,并结合车载网络需求专门定制了一些新标准。针对车载以太网标准,IEEE组织也对IEEE 802.1和IEEE 802.3标准进行了相应的补充和修订。

CAN

CAN是控制器域网 (Controller Area Network, CAN) 的简称,是由研发和生产汽车电子产品著称的德国BOSCH公司开发了的,并最终成为国际标准(ISO11898)。是国际上应用最广泛的现场总线之一。在北美和西欧,CAN总线协议已经成为汽车计算机控制系统和嵌入式工业控制局域网的标准总线,并且拥有以CAN为底层协议专为大型货车和重工机械车辆设计的J1939协议。近年来,其所具有的高可靠性和良好的错误检测能力受到重视,被广泛应用于汽车计算机控制系统和环境温度恶劣、电磁辐射强和振动大的工业环境。

CAN在车载操作系统&应用开发中使用非常广泛,车载Android的核心服务之一 - CarService本质上就是将外部硬件通信报文解析成上层应用可以识别的数据,这里的通信报文目前普遍都是CAN报文。

CAN通信在车载中使用的是如此广泛,以至于作为Android程序员,我们都不得不去学习CAN仿真测试工具的使用,有时候甚至需要我们去阅读、解析CAN报文。值得一提的是CAN仿真测试工具非常昂贵,虽有国产替代,但目前依然普遍采用德国维克多公司出品的各类工具和软件,价格在数万元到数十万元不等。

3D HMI设计工具 & 嵌入式图形引擎

随着车载Soc算力的提高,现代座舱越来越喜欢引入3D化的图形界面,3D化的界面可以实时生成动画反馈,大大提升了界面的美观性和易用性。目前车载开发中主流的3D HMI设计工具&图形引擎有老牌的游戏开发工具如Unity 3d、Unreal(虚幻),也有专用于汽车HMI设计&图形显示的 — Kanzi 。

2016年芬兰汽车软件公司Rightware以及旗下产品Kanzi,被国内的汽车软件供应商中科创达收购。

上面介绍了汽车座舱的基础知识,Android应用程序员说到底还是负责在座舱中控,编写各类型的应用,下面就来介绍车载应用与互联网应用的不同之处。

03.

车载应用开发

车载Android应用说到底就是,在车载Android系统中嵌入一系列系统级应用,这里既包含与用户存在交互的HMI应用,也包含在后台运行没有HMI的Service应用。

一般而言,车载应用复杂度比一般的互联网应用还要低一些。

常见有HMI的车载应用如,车载空调、多媒体应用、桌面、SystemUI、系统设置、车控车设、蓝牙电话以及一些第三方应用等等。

没有HMI的应用有,CarService、AudioService、AccountService等等。在车载应用开发中需要定制大量的Service,这也是应用开发中工作量比较大的一部分。

3.1 系统级应用与普通应用的区别

系统应用需要嵌入到Android ROM中运行,虽然普通的应用也可以嵌入到ROM中,但是系统应用可以调用Android SDK的内部API,而这一点是普通应用做不到的,总得来说系统应用具有以下特点

  • 可以访问Android SDK内部的API
  • 不需要申请动态权限
  • 可配置开机自启动
  • 必须对应用进行签名

接下来我们实际上手编写一个系统级应用。

3.2 编写一个系统级应用

编写Android系统应用与普通的Android应用基本相同,我们首先在AndroidStudio中编写一个demo,只需要一个空白的Activity和Application即可。

public class DemoApp extends Application {

    private Handler handler;

    @Override
    public void onCreate() {
        super.onCreate();
        Log.e("TAG", "onCreate: start");
        handler = new Handler(Looper.getMainLooper());
        handler.postDelayed(new Runnable() {
            @Override
            public void run() {
                showView();
            }
        },5000);
    }

    private void showView(){
        WindowManager manager = getSystemService(WindowManager.class);
        View view = new View(this);
        WindowManager.LayoutParams params = new WindowManager.LayoutParams(WindowManager.LayoutParams.MATCH_PARENT,WindowManager.LayoutParams.MATCH_PARENT);
        params.type = WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;
        manager.addView(view,params);
    }
}

上面的application逻辑很简单,app启动5秒后,弹出一个全屏的Window的。

接下来在AndroidManifest.xml中注册application。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.car"
    android:sharedUserId="android.uid.system">

    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:persistent="true"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.First">

        <activity
            android:name=".MainActivity"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

在上面源码中我们需要关注两个普通应用用不到的属性:android:sharedUserId将与其他应用程序共享的 Linux 用户 ID 的名称。默认情况下,Android 会为每个应用分配自己唯一的用户 ID。但是,如果为两个或多个应用将此属性设置为相同的值,则它们将共享相同的 ID,前提是它们的证书集相同。具有相同用户 ID 的应用可以访问彼此的数据,如果需要,可以在同一进程中运行。开发系统应用时,此项不是必须配置的。配置为android.uid.system后,该应用会变成system用户,可以访问一些system用户才能访问的空间。

android:persistent配置应用程序是否应始终保持运行,默认为false。设为true之后,应用在开机广播发出之前就会自行启动,而且应用被杀死后,也会立即重启。开发系统应用时,此项不是必须配置的。

3.3 测试系统应用

3.3.1 准备测试环境

测试系统应用就比较麻烦了,由于手边没有开发板,只能基于模拟器进行测试,所以就必须下载Android的源码,并使用Android源码环境编译出带有系统签名的APK。下载、编译Android源码 请参考 :Android车载应用开发与分析(1) - Android Automotive概述与编译完成Android源码编译后,我们将编写好的FirstCarApp部分源码拷贝到 /aosp/packages/apps/Car/ 下,基于Android源码环境的app工程结构与基于Gradle的AndroidStudio工程结构是完全不一样的,目录结构如下:

你应该注意到了 src 目录下没有androids studio工程结构中的main/java需要强调的是,这种基于原生的写法,并不常用。实际开发中,我们依然是在Android Studio中开发完毕,将源码提交到gerrit上,后续的编译、签名、复制的过程会有jenkins帮我们完成。

3.3.2 编译&运行应用

源码环境下编译出Android应用,需要编写一个Android.bp或Android.mk脚本,如果你对Android.bp或Android.mk并不了解的话请参考:Android.mk 上手指南| Android.bp入门教程

本篇测试用的Android.bp脚本如下

package {
    default_applicable_licenses: ["Android-Apache-2.0"],
}

android_app {
    name: "CarFirstApp",
    srcs: ["src/**/*.java"],
    resource_dirs: ["res"],
    platform_apis: true,
    certificate: "platform",
    privileged: true,
    static_libs: [
    "androidx.appcompat_appcompat",
    "com.google.android.material_material",
    ],
    optimize: {
        enabled: false,
    },
    dex_preopt: {
        enabled: false,
    },
    product_variables: {
        pdk: {
            enabled: false,
        },
    },
}

然后完整编译一次Android的源码

# 编译Android源码
/aosp$ source build/envsetup.sh 
/aosp$ lunch 12
/aosp$ make -j 32
/aosp$ emulator -writable-system -netdelay none -netspeed full

一般情况下我们可以直接使用emulator指令就可以启动编译好的模拟器,但是此时的模拟器的文件系统还是read-only模式,并且不可以执行remount指令,通过添加-writable-system -netdelay none -netspeed full,我们就可以正常使用remount指令了。

/aosp$ adb root
/aosp$ adb remount
/aosp$ adb shell reboot

等模拟器重启后,我们继续编译出CarFristApp的apk。

link@link-PC:/aosp$ make CarFirstApp
...
## 编译后输出的apk路径
============================================
[100% 4/4] Install: out/target/product/generic_car_x86/system/priv-app/CarFirstApp/CarFirstApp.apk

#### build completed successfully (2 seconds) ####

然后使用adb指令在模拟器中创建一个CarFristApp目录,将编译好的apk push到system/priv-app/CarFristApp/目录下。

/CarFirstApp$ adb root
/CarFirstApp$ adb remount
# 创建目录
/CarFirstApp$ adb shell mkdir /system/priv-app/CarFirstApp
/CarFirstApp$ adb push CarFirstApp.apk /system/priv-app/CarFirstApp
# 重启
/CarFirstApp$ adb

相关内容

体育类校外培训迎来强监管时代

实习记者 | 陈琼烨体育类校外培训机构的监管进一步收紧。办学资质、教师资质、资金监管等动作已开始在体育培训行业上演。近日,上海市体育局会同上海市教育委员会制定了《上海市体育类校外培训机构设置标准》(征求意见稿) ,明确了机构设置、培训场地···

自治区少工委举办“学习二十大 争做好队员”第一期少先队小骨干暨优秀红领巾讲解员线上培训班

为深入学习宣传贯彻党的二十大精神,进一步在全区广大少先队辅导员、少先队小骨干和红领巾讲解员中持续掀起学习党的二十大精神热潮,加强少先队小骨干和红领巾讲解员队伍建设,提高红领巾讲解员的宣讲能力。12月10日,自治区少工委举办“学习二十大 争做···

(夏云)改变世界,先要改变自己:圆桌课程学习后的一点小感悟

(夏云图文)前天我应邀参加了一天在静安洲际酒店举办的圆桌拜访会议,作为圆桌家庭的一名新成员,我是首次在上海参加了这样的拜访会,在会上,来自世界各地的学员们发自肺腑的精彩分享,让我动容,甚至让我流泪,我不禁深深感到,圆桌课程真是太神奇,太令人···

紫阳县城关镇中心学校举行 “真爱梦想”2023年暑期教师培训活动

7月11日,“真爱梦想2023年梦想教练计划·暑期梦想教师培训(紫阳站)”在紫阳县城关镇中心学校举行。本次培训由县教体科技局和上海真爱梦想公益发展中心主办,城关镇中心学校承办。县乡村振兴局、教体科技局相关领导和真爱梦想项目负责人出席启动仪···

圆满结业!这个培训干货满满!

为深入学习宣传党的二十大精神,结合习近平新时代中国特色社会主义思想主题教育,文化馆开展服务宣传周系列活动——全区群众艺术馆馆长及76个县(区)艺术团团长培训班在上海圆满结业。一、培训内容本次培训班采用专家讲座、现场教学、交流分享等形式进行教···

如何鉴别学科类和非学科类培训?指南来了

“双减”大潮下,一些传统学科类培训也悄然变身“素养课”“表达课”“阅读课”。这些换了名字、换了形式的校外培训,还是学科类校外培训吗?今年7月,教育部办公厅印发了《关于进一步明确义务教育阶段校外培训学科类和非学科类范围的通知》。各地在细化校外···

为首开先河的大学生养老社工培训班点赞

上海至少需要6000多名养老社会工作者,而目前岗位人才缺口则在一半以上。眼下,来自上海18所高校、21个专业的约200名大学生正在上海首届大学生养老社工培训班受训。(10月11日 中国新闻网)截至2021年年底,全国60岁及以上老年人口达2···

进入上海顶尖汽修培训学校,这些云南老师学到了啥?真本领

“此次到上海参加培训,让我们接触到了最先进的汽车维修技艺和规范标准,对今后的教学大有帮助。”日前,在上汽通用汽车经销商培训中心,即将结束培训返回云南的红河技师学院老师李斌由衷地表示。这也意味着,为期三周的沪滇汽车维修专业教师能力提升公益培训···

全国碳市场能力建设(上海)中心辽宁培训基地在沈阳成立

2021年5月19日,由上海环境能源交易所和沈阳环境资源交易所联合建立的“全国碳市场能力建设(上海)中心辽宁培训基地”正式落户沈阳,辽宁省生态环境厅和沈阳市生态环境局的领导及相关负责同志、上海环境能源交易所的相关负责同志、沈阳环境资源交易所···

【文旅要闻】集业务培训一箭之功 助产业发展一臂之力——全省2023年文化旅游产业示范项目提升培训班见闻

八月的庆阳,高天厚土,草木葳蕤。循着南梁精神赓续传承的红色基因之路,全省2023年文化旅游产业示范项目提升培训班在此举办。培训定位助力文旅项目建设、提升产业发展水平,对100余名市州文旅部门干部和文旅企业家进行实训,旨在从智力、理念、方法上···

缴纳几千元培训费即可进国企躺赚?36人涉罪刑拘!

看似正规的培训公司,实际却是层层圈套编织的陷阱,号称缴纳几千元培训费,就能获得专业工作证件,既可选择在国企实现月薪过万,也可挂靠证书,“躺着”赚钱。5月22日,海报新闻从上海市公安局获悉,松江警方成功侦破一起诈骗案,36名涉案人员均因涉嫌诈···

剑桥KET/PET要“凉凉”?教育部宣布不再承办该考试,有教育机构竟立刻“支招”引转“战场”

教育不承办了,这考试估计要凉了吧。”“我们家正在准备,这还要不要考了啊?”“我怎么感觉‘小托福’马上要火了。”昨天,教育部考试中心的一则公告,在小学生家长中间引发热议。教育部称,经与英国剑桥大学英语考评部友好协商,从即日起不再承办剑桥通用英···

纪念严定宪|《大闹天宫》的创作前后跨了4年

【编者按】中国共产党党员、著名动画艺术家、《大闹天宫》首席动画设计、一级导演严定宪先生,因病于2022年12月26日凌晨4时24分去世,享年86岁,曾任中国影协理事、上海影协理事、中国动画学会副会长、国际动画协会(ASIFA)会员,享受国务···

舞剧《永不消逝的电波》为何一票难求

光明日报记者 苏丽萍12月6日至8日,上海歌舞团舞剧《永不消逝的电波》进京在国家大剧院演出5场,演出票瞬间被抢光。12月8日晚,该剧在国家大剧院举办百场纪念演出专场。自2018年12月20日启动首轮试演以来,短短一年时间,《永不消逝的电波》···

“舞动十二小时”在上海国际舞蹈中心点亮“艺术天空”

光明网讯11月3日,由中国上海国际艺术节组委会办公室、长宁区人民政府、上海国际舞蹈中心发展基金会携手举办的“舞动十二小时”特别活动在上海国际舞蹈中心举行。辛丽丽芭蕾大师公开课作为在“艺术天空”板块中首次推出的舞动12小时特别活动,辛丽丽、谭···

这家网课平台套路太溜:一边招新学员,一边将老学员课程变成“缩水积分”

自去年9月起,上海市民郑女士就再也约不到“阿卡索”平台上的英语课了。“去年12月登录时,账户里就看不到剩余课程了。后来直接给我兑换成积分,说是可以换东西,结果3月积分也清零了。”联系不上客服,申请退费迟迟无人处理,郑女士所在的维权群里,不少···

英格卡购物中心自有趣玩体验空间PlayLab圆满收官

荟玩有趣 尽在荟聚(2023年2月6日,上海)英格卡购物中心自1月起在国内7座荟聚(购物中心)先后推出的自有趣玩体验空间“PlayLab荟趣实验室”于昨日圆满收官。1月16日至29日,该限时体验空间于7座荟聚同时呈现,期间共计近400万人次···

太难了!300人竞争12个名额,沪上插班考竞争太激烈

从去年开始,很多学校都发布了插班的消息,而许多参加了插班生考试的家长都表示,插班考竞争是越来越大了!插班考试由学校命题,所以不同学校插班生考试难度不同。根据家长们的反馈,小编大致整理了一下各校插班考的难度排名,大致如下:最难:星河湾、世外中···

“期中考试”来了,快来测测你的上海话水平!

你的上海话水平怎么样?看了小布推出的上海话栏目后有没有进步呢?来跟小布一起进行一次上海话“期中考试”吧!来,请同学们向下滑动,认真答题,再点击空白处核对正确答案,看看大家都能答对多少题?笔试部分选择题1下列物品中,上海人在过冬时一般不会用到···

征稿启事丨第七届口语传播学术论坛

2012年堪称我国国际传播史上的关键节点。在这一年,中央电视台的两个海外分台——北美分台(如今的CGTN America)和非洲分台(如今的CGTN Africa)正式开播,自此,我们拥有了向世界述说中国的崭新“话筒”。从2012到2021···