另类操作系统 三星Tizen2.4测试版SDK已经向开发者推送下载

yizhihongxing

另类操作系统 三星Tizen2.4测试版SDK已经向开发者推送下载

从本篇文章中,你将会了解到如何下载、安装并使用三星Tizen2.4测试版SDK进行开发。

下载

  1. 访问三星的开发者网站(https://developer.tizen.org/development/sdk/download)。
  2. 在“Tizen Studio”页面选择合适的平台进行下载,Windows、macOS和Ubuntu都可下载,这里以Windows为例。
  3. 点击下载链接,等待下载完成。

安装

  1. 双击下载的安装程序,按照提示进行安装。
  2. 安装完后启动Tizen Studio。

创建新项目

  1. 启动Tizen Studio后,点击“File” -> “New” -> “Tizen Project” -> “Tizen Wearable 2.3 Native Application”。
  2. 在弹出的对话框中填写项目信息,例如应用名称、包名、版本号等。
  3. 点击“Finish”进行创建。

运行项目

  1. 点击“Run” -> “Tizen Emulator Manager”,在弹出的窗口中创建一个新的模拟器。
  2. 选择所要运行的模拟器,点击“Run”进行运行。
  3. 在模拟器中选择你创建的项目并运行。

示例 1

下面通过一个简单的示例代码来展示在Tizen Studio中如何编写一个简单的应用:

#include <app.h>
#include <Elementary.h>

int main(int argc, char *argv[]) {
    ui_app_lifecycle_callback_s event_callback = {0,};
    app_event_handler_h handlers[5] = {NULL, };
    int ret;

    ui_app_add_event_handler(&handlers[APP_EVENT_LOW_BATTERY], APP_EVENT_LOW_BATTERY, app_event_callback, &event_callback);
    ui_app_add_event_handler(&handlers[APP_EVENT_LOW_MEMORY], APP_EVENT_LOW_MEMORY, app_event_callback, &event_callback);
    ui_app_add_event_handler(&handlers[APP_EVENT_DEVICE_ORIENTATION_CHANGED], APP_EVENT_DEVICE_ORIENTATION_CHANGED, app_event_callback, &event_callback);
    ui_app_add_event_handler(&handlers[APP_EVENT_LANGUAGE_CHANGED], APP_EVENT_LANGUAGE_CHANGED, app_event_callback, &event_callback);
    ui_app_add_event_handler(&handlers[APP_EVENT_REGION_FORMAT_CHANGED], APP_EVENT_REGION_FORMAT_CHANGED, app_event_callback, &event_callback);

    event_callback.create = create_cb;
    event_callback.terminate = terminate_cb;
    event_callback.pause = pause_cb;
    event_callback.resume = resume_cb;
    event_callback.app_control = app_control_cb;
    event_callback.ui_app_lang_changed = ui_app_lang_changed_cb;
    event_callback.ui_app_orient_changed = ui_app_orient_changed_cb;
    event_callback.ui_app_region_changed = ui_app_region_changed_cb;

    ret = ui_app_main(argc, argv, &event_callback, NULL);
    if (ret != APP_ERROR_NONE) {
        dlog_print(DLOG_ERROR, LOG_TAG, "app_main() is failed. err = %d", ret);
    }

    return ret;
}

static bool create_cb(void *data) {
    ui_app_lifecycle_callback_s *callbacks = data;

    /* Hook to take necessary actions before main event loop starts
        Initialize UI resources
        Open a connection to the sensor manager
        Register callbacks for sensor events if it is necessary
    */

    return true;
}

static void terminate_cb(void *data) {
    /* Release all resources. */
}

static void pause_cb(void *data) {
    /* Take necessary actions when application becomes invisible. */
}

static void resume_cb(void *data) {
    /* Take necessary actions when application becomes visible. */
}

static void app_control_cb(app_control_h app_control, void *data) {
    /* Handle the launch request. */
}

static void ui_app_lang_changed_cb(app_event_info_h event_info, void *user_data) {
    /* APP_EVENT_LANGUAGE_CHANGED */
    char *locale = NULL;
    system_settings_get_value_string(SYSTEM_SETTINGS_KEY_LOCALE_LANGUAGE, &locale);
    elm_language_set(locale);
    free(locale);
}

static void ui_app_orient_changed_cb(app_event_info_h event_info, void *user_data) {
    /* APP_EVENT_DEVICE_ORIENTATION_CHANGED */
}

static void ui_app_region_changed_cb(app_event_info_h event_info, void *user_data) {
    /* APP_EVENT_REGION_FORMAT_CHANGED */
}

示例 2

下面通过一个简单的图形化界面来展示如何在Tizen Studio中创建一个简单的用户界面:

#include <app.h>
#include <Elementary.h>

enum {
    SQUARE = 0,
    CIRCLE = 1,
    RECTANGLE = 2,
    ITEM_LAST,
};

static const char *_icon_path[] = {
    "images/ico_square.png",
    "images/ico_circle.png",
    "images/ico_rectangle.png",
};

typedef struct appdata {
    Evas_Object *win;
    Evas_Object *conform;
    Evas_Object *layout;
    Evas_Object *list;
} appdata_s;

static void win_delete_request_cb(void *data, Evas_Object *obj, void *event_info) {
    ui_app_exit();
}

static void item_selected_cb(void *data, Evas_Object *obj, void *event_info) {
    appdata_s *ad = data;
    int index = (int)elm_object_item_data_get(event_info);

    switch (index) {
        case SQUARE:
            dlog_print(DLOG_INFO, "mytag", "Square is selected!");
            break;
        case CIRCLE:
            dlog_print(DLOG_INFO, "mytag", "Circle is selected!");
            break;
        case RECTANGLE:
            dlog_print(DLOG_INFO, "mytag", "Rectangle is selected!");
            break;
        default:
            break;
    }
}

static void create_base_gui(appdata_s *ad) {
    /* Window */
    elm_config_use_sync_set(EINA_TRUE);
    ad->win = elm_win_util_standard_add(PACKAGE, PACKAGE);
    elm_win_autodel_set(ad->win, EINA_TRUE);
    elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);
    evas_object_smart_callback_add(ad->win, "delete,request", win_delete_request_cb, NULL);

    /* Conformant */
    ad->conform = elm_conformant_add(ad->win);
    evas_object_size_hint_weight_set(ad->conform, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
    elm_win_resize_object_add(ad->win, ad->conform);
    evas_object_show(ad->conform);

    /* Create a list view */
    ad->list = elm_list_add(ad->conform);
    evas_object_show(ad->list);

    elm_list_item_append(ad->list, "Square", NULL, NULL, item_selected_cb, ad);
    elm_list_item_append(ad->list, "Circle", NULL, NULL, item_selected_cb, ad);
    elm_list_item_append(ad->list, "Rectangle", NULL, NULL, item_selected_cb, ad);

    /* Layout */
    ad->layout = elm_layout_add(ad->conform);
    elm_layout_theme_set(ad->layout, "layout", "application", "default");
    evas_object_size_hint_weight_set(ad->layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
    elm_object_content_set(ad->conform, ad->layout);

    elm_object_part_content_set(ad->layout, "elm.swallow.content", ad->list);

    /* Show window */
    evas_object_show(ad->win);
}

int main(int argc, char *argv[]) {

    appdata_s ad = {NULL,};

    ui_app_lifecycle_callback_s event_callback = {NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL};
    app_event_handler_h handlers[5] = {NULL, };
    int ret = 0;

    /* Hook to take necessary actions before main event loop starts
        Initialize UI resources
        Open a connection to the sensor manager
        Register callbacks for sensor events if it is necessary
    */

    //create_base_gui(&ad);
    create_base_gui(&ad);

    ret = ui_app_main(argc, argv, &event_callback, &ad);

    /* Hook to take necessary actions before main event loop starts
        Release all resources
    */

    return ret;
}

以上就是下载、安装和使用Tizen Studio开发三星Tizen2.4测试版SDK的完整攻略,通过这些步骤,你可以轻松上手开发Tizen应用。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:另类操作系统 三星Tizen2.4测试版SDK已经向开发者推送下载 - Python技术站

(0)
上一篇 2023年6月26日
下一篇 2023年6月26日

相关文章

  • AndroidHttpClient详解及调用示例

    AndroidHttpClient详解及调用示例 什么是AndroidHttpClient AndroidHttpClient是一个基于Apache HttpClient的AndroidHTTP客户端,它可以帮助我们更加轻松地使用HTTP/HTTPS来访问网络资源。在Android 6.0及以上版本中,AndroidHttpClient被标记为过时,我们应该…

    other 2023年6月26日
    00
  • access怎么按照性别为某字段增补前置符号?

    为了实现按照性别字段为某字段增补前置符号,需要使用到access的查询功能。具体步骤如下: 点击创建,在下拉菜单中选择查询设计。在新建的查询设计视图中,添加需要操作的数据表,并在其中选择目标字段与需增补的前置符号。以增补前置符号的方式为例,可以选择计算字段,在该字段的表达式中使用&符号将目标字段与需要增补的符号连接起来。例如,若我们需要在Gender…

    other 2023年6月25日
    00
  • vue之项目中如何封装loading加载效果

    在Vue项目中,封装loading加载效果可以提高页面交互体验,用户操作体验更加流畅。 以下是封装loading加载效果的完整攻略: 1. 创建全局Loading组件 我们可以使用Vue的全局组件来封装loading效果。首先,创建一个loading组件,例如: <template> <div class="loading-mas…

    other 2023年6月25日
    00
  • app的token机制

    以下是”App的Token机制”的完整攻略,包括步骤、示例和注意事项: App的Token机制攻略 App的Token机制是一种常见身份验证制,用于保护App的安全性。以下是详细的攻略: 步骤 以下是使用App的Token机制的步骤: 生成Token。 在使用App的Token机制时,需要首先生成Token。Token是一种随机生成的字符串,用于标识用户的身…

    other 2023年5月7日
    00
  • jupyternotebook–sns.load_dataset加载文件错误的解决方案

    以下是关于“jupyternotebook–sns.load_dataset加载文件错误的解决方案”的完整攻略,包含两个示例。 背景 在使用Seaborn库进行数据可视化时,我们经常需要使用sns.load_dataset()函数加载数据集文件。然而,有时候在加载数据集文件时,可能会遇到HTTPError错误,如下所示: HTTPError: HTTP Er…

    other 2023年5月9日
    00
  • 通信网络 2G 3G 4G 和路由器2.4G 5G的区分和关系

    通信网络 2G 3G 4G 和路由器2.4G 5G的区分和关系 通信网络的发展历程 移动通信领域的发展是一个不断迭代更新的过程。从 1980 年代开始的 1G 网络,到 1990 年代的 2G 网络,再到 2000 年代的 3G 网络,以及近年来兴起的 4G 网络,每一代网络的诞生都标志着技术的进步和通信的便捷。 2G、3G 和 4G 网络的区别 2G 网络…

    其他 2023年3月28日
    00
  • Boolean operations between triangle meshes

    Boolean operations between triangle meshes的完整攻略 Boolean operations between triangle meshes是计算机图形学中的一个重要问题,它可以用于模型编辑、CAD、虚拟现实等领域。本文将为您提供Boolean operations between triangle meshes的完整…

    other 2023年5月6日
    00
  • Counter-Strike: cstrike.exe 应用程序错解决方法误

    解决 “Counter-Strike: cstrike.exe 应用程序错解决方法误” 问题,可以遵循以下步骤: 步骤一:重新安装游戏 首先,建议你尝试重新安装 Counter-Strike 游戏,因为该错误有可能是由游戏程序损坏或文件丢失造成的。 可以先卸载 Counter-Strike,然后再重新下载安装,确保下载的游戏文件没有损坏并且安装过程没有中途出…

    other 2023年6月25日
    00
合作推广
合作推广
分享本页
返回顶部