本次Android app开发过程使用的是androidstudio软件平台进行的开发
1.首先,在创建新的Project工程文件时,在某个配置页面初始默认语言是Kotlin,本以为用默认的配置即可,但是在新建时工程进入到创建初始的gradle等文件下载配置时,会有个跟Kotlin有关的配置包一直无法顺利下载导致无法完成新工程的创建,后面在网络上寻求解决方案也未能找到合适的方法。
后来发现在工程创建页面将language选项改为java后则能够顺利完成初始化,虽然曾经使用过Androidstudio新建工程,但是未曾注意过新建时的语言选项,也可能之前默认是Java,或是自己改动过语言,也可能是以前Kotlin也能正常使用。总之将language改为java后才能正常运行。
2.其次,在后面的APP设计时,又发现了一个问题。同样是由于自己在工程创建时,考虑到可以自己少搭建点内容,尝试选用了Basic Activity模板,但是后续在完善设计的时候发现其中用的是fragment进行的设计,由于自己之前未使用过fragment的方式,只是用过一般的activity的设计,同时fragment和activity在实现同样功能所用的方式具有一定的差异,相关资料少些导致在后续设计时的麻烦较多,因此后续又新建了一个Empty Activity,采用自己熟悉的Activity进行开发。因此,对于APP开发入门的话,还是以Empty Activity为基础较好。
3.本次开发需要调用手机中的相册或相机等部件,其中就涉及到了权限的问题,在Android APP中如果权限问题处理不当,在未经授权的情况下使用APP调用相关部件,很可能导致闪退的情况发生,因此在使用相关代码调用前,要提前将权限的问题解决好,比如在AndroidManifest.xml中的权限语句的添加,在Activity文件中相关权限检测,申请函数的编写等。
4.另外在编写时还要格外注意的是Android版本的问题所引发的一系列问题,不同版本Android的问题往往有不同的解决方案,在查询网络上的解决方案或实现某些功能的代码操作时要意识到版本问题,不同版本下的解决方案不一定能够通用。例如权限读写问题,在android10之前可能会允许APP自行创建文件夹并在文件夹中进行读写操作,但是10之后则规定只能在特定的几个文件夹中进行相关操作,而写必须要求获取用户的权限授予操作等,而到11后等甚至变为了只能在android为本app单独设立的文件夹中进行读写操作。
Android版本是在不断迭代更新的,越新的版本往往意味着更少的易获取的教程资源,因此Android版本不同所带来的影响和问题是要格外注意到的。版本一般而言就是gradle文件中的sdk的数字。
5.本次开发中还是使用到了一些外部函数库,如opencv等,要注意的是其独有的一些配置的问题,如需要初始化等问题,注意到由于其独有的问题所以发的一些闪退等。