<返回更多

HarmonyOS之手机应用开发体验

2022-02-16    活力行动
加入收藏
HarmonyOS之手机应用开发体验

下载开发工具:https://developer.harmonyos.com

从链接
https://developer.harmonyos.com/cn/docs/documentation/doc-guides/document-outline-0000001064589184获得开发指南

远程模拟器

从集成开发环境启动设备管理,使用远程仿真来模拟真机,并在仿真器上运行应用。

HarmonyOS之手机应用开发体验

从devEco入口


HarmonyOS之手机应用开发体验

设定远程仿真器


HarmonyOS之手机应用开发体验

在设备启动项目

一个Js项目

与写vue项目差异不大,只是工程上将js,css,h5分隔开来。稳定性还远远不够。

例如:

 

HarmonyOS之手机应用开发体验

hml

在页面跳转上出一些问题,无法有效找到帮助。

 

HarmonyOS之手机应用开发体验

错误

关于手机传感器的开发、如位置的开发,js貌似无能为力。只能说还是一个不太成熟的IDE,要想用得顺畅,还是得靠JAVA

一个native C++项目

extern "C"
JNIEXPORT jstring JNICALL
Java_com_example_myApplication_slice_MainAbilitySlice_stringFromJNI(JNIEnv* env, jobject  obj) {
    std::string hello = "Hello from JNI C++ codes";
    int len = hello.size();
    jchar res[len];
    for (int i = 0; i < len; i++) {
        res[i] = (jchar)hello[i];
    }
    return env->NewString(res, len);
}

在java中如此加载


public class MainAbilitySlice extends AbilitySlice {
    // Load the 'native-lib' library on application startup.
    static {
        System.loadLibrary("hello");
    }

    private PositionLayout myLayout = new PositionLayout(this);

    @Override
    public void onStart(Intent intent) {
        super.onStart(intent);
        LayoutConfig config = new LayoutConfig(LayoutConfig.MATCH_PARENT, LayoutConfig.MATCH_PARENT);
        myLayout.setLayoutConfig(config);
        ShapeElement element = new ShapeElement();
        element.setShape(ShapeElement.RECTANGLE);
        element.setRgbColor(new RgbColor(255, 255, 255));
        myLayout.setBackground(element);
        Text text = new Text(this);
        text.setText(stringFromJNI());
        text.setTextColor(Color.BLACK);
        myLayout.addComponent(text);
        super.setUIContent(myLayout);
    }

    @Override
    public void onActive() {
        super.onActive();
    }

    @Override
    public void onForeground(Intent intent) {
        super.onForeground(intent);
    }

    /**
     * A native method that is implemented by the 'native-lib' native library,
     * which is packaged with this application.
     */
    public native String stringFromJNI();
}

主服务框架中引用slice


public class MainAbility extends Ability {
    @Override
    public void onStart(Intent intent) {
        super.onStart(intent);
        super.setMainRoute(MainAbilitySlice.class.getName());
    }
}

总之新品还是有很多亟待改善的地方

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>