laya打安卓包过程记录

lintOptions

    lintOptions{
        checkReleaseBuilds false
        abortOnError false
    }

安卓开发-目录结构

https://blog.csdn.net/qq_41858698/article/details/104355917

nox模拟器连接AS

nox_adb.exe connect 127.0.0.1:62001

AS项目排除duplicate库

//剔除工程中所有的该依赖
configurations {
//    https://blog.csdn.net/weixin_44715716/article/details/120899914
//    https://blog.csdn.net/lfq88/article/details/118222107?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-118222107-blog-128267706.235%5Ev36%5Epc_relevant_default_base3&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-118222107-blog-128267706.235%5Ev36%5Epc_relevant_default_base3&utm_relevant_index=1
//    https://blog.csdn.net/jdsjlzx/article/details/97940958/
    all*.exclude group: 'com.android.support', module: 'support-v4' 
}

排除前后

在这里插入图片描述

安卓生命周期概要

public class Activity extends ApplicationContext {

-------------------------------------------------------------------------------
【一、】protected void onCreate(Bundle savedInstanceState);
-------------------------------------------------------------------------------
1、当activity第一次被创建时调用。
2、视图的创建、数据的初始化都在这里执行。
3、Bundle savedInstanceState参数,这里面会保存activity之前的状态。
==============================================
==============================================

-------------------------------------------------------------------------------
【二、?】protected void onRestart();
-------------------------------------------------------------------------------
1、被stop的activity重新启动时调用此函数
2、后面会紧跟onResume
==============================================
==============================================

-------------------------------------------------------------------------------
【三、】protected void onStart();
-------------------------------------------------------------------------------
1、在onCreate方法后调用
==============================================
==============================================

-------------------------------------------------------------------------------
【四、】protected void onResume();
-------------------------------------------------------------------------------
1、在onStart方法后调用。
2、activity是使用栈结构来管理的,此时(cur)activity处于栈顶(后进先出)。
==============================================
==============================================

-------------------------------------------------------------------------------
【五、】protected void onPause();
-------------------------------------------------------------------------------
1、当有新的activity进入栈顶,即当前activity被迫到后台运行
2、onPause就会被调用。
==============================================
==============================================

-------------------------------------------------------------------------------
【六、】protected void onStop();
-------------------------------------------------------------------------------
1、会在onPause方法后调用(此时activity对于用户来讲,已经是不可见的了(Invisible)。)
2、从栈的角度来说,就是有新的activity压栈,或者已经存在的activity回到了栈顶。
==============================================
==============================================

-------------------------------------------------------------------------------
【七、】protected void onDestroy();
-------------------------------------------------------------------------------
1、这是生命周期中的最后一个函数。
2、一般情况下activity已经完成(调用finish函数) or 系统为了回收资源主动销毁activity时,onDestroy才会被调用,可以通过isFinishing()方法来区分这2种情况。
==============================================
==============================================
}***2个概念需要区别一下:
	1. 可见的(Visible,从onStart到onStop,这里的可见,不仅仅是在屏幕上可见)
	2. 前台运行(Foreground,从onResume到onPause)***】打印函数
	Log.d(TAG,"=== onCreate ===");***】各种运行情况
	从创建到显示出来:
		【一、】onCreate-->【三、】onStart-->【四、】onResume
	打开其它App,一般我们会去按Home键退出
		突发:【五、】onPause-->【六、】onStop
		恢复:【二?、】onRestart-->【三、】onStart-->【四、】onResume
	最后一个activity,按下Back键程序结束
		【五、】onPause-->【六、】onStop-->【七、】onDestroy
	MainActivity进入SecondActivity,按下back键
		SecondActivity:【五、】onPause-->【六、】onStop-->【七、】onDestroy
		MainActivity:【二?、】onRestart-->【三、】onStart-->【四、】onResume
	【extra】onSaveInstanceState与onRestoreInstanceState
		1、在onPause、onStop方法调用后,activity进程是有可能随时被杀掉的,所以应该在onPause方法中进行数据保存操作,以免数据丢失。
	2、onSaveInstanceState方法也是完成类似的功能,数据保存在给定的bundle里。因为onSaveInstanceState不是activity生命周期函数,android API更推荐在onPause方法中去保存数据。
	横竖屏切换(不做任何处理,切换下横竖屏)
		1、销毁【七、】——2、重新创建了activity【一、】
		为了解决上述问题,一般会有几个办法:
			i.禁止横竖屏切换(限定横屏或竖屏,比较流氓啊,不推荐)
			n.横竖屏独立布局(创建2个文件夹layout-land和layout-port,对应的xml文		件不变)
	防止activity重载(在AndroidManifest.xml中添加android:configChanges="keyboardHidden|orientation",并重写onConfigurationChanged方法)***】博客地址:
	https://blog.csdn.net/weixin_29958797/article/details/117348966

安卓调JS/TS 和 JS/TS调安卓过程

1、JS/TS 调安卓伪代码

this._bridge = window['PlatformClass']?.createClass("com.xxx.JSBdg"); //1、取桥
this._bridge.call(JVConst.onLogin, json);  //2、桥的简单用法(其它形式看官网)
declare type MBaseType = boolean | number | string;
/**
 * @author lhz
 * @description 桥接口
 * @time 2023-05-27
 */
export interface IBridge {
    callWithBack(cbF: (json: string) => void, mthName: string, json: string): void;
    //函数参数只支持布尔、浮点、字符串等基本类型,支持返回值
    call(mthName: string, sth: MBaseType): MBaseType;
}

2、安卓调JS

ConchJNI.RunJS("onTestJs('" + v + "')"); //1、java关键代码
//2、需要js存在onTestJs(json: string)函数
/**
 * 测试函数
 */
window['onTestJs'] = function (json: string) {
	alert('java传参至此:' + json);
}.bind(this);
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值