栈的代码问题及解决方案 全栈开发第19讲
淘宝搜:【天降红包222】领超级红包,京东搜:【天降红包222】
淘宝互助,淘宝双11微信互助群关注公众号 【淘姐妹】
? ? ? ? 因为要开发至简网格,涉及的面很广,继续用服务侧开发也需要多端开发。碰到零零总总各类问题,全部记录在这里,便于以后查找。
? ? ? ? 顺便做个小广告,至简网格是一套端&云结合开发框架,极大简化了服务侧与端侧开发,服务侧使用简单的json配置与sql、js脚本,就可以搞定95%以上的业务场景;端侧支持android与windows,本质是一个轻应用开发框架,用vue+quasar实现UI,使用极其简单。实现的几个业务代码已在码云、CSDN开源,还在持续完善中,欢迎使用。
目录
1.?环境问题
1.1.?【【淘密令】】
1.1.1.加入jar、aar的方法:
1.1.2.模拟器路径权限
1.1.3.gradle安装
1.1.4.gradle问题
1.1.5.kotlin、gradle插件被禁用
1.1.6.Kotlin-android not found错误
1.1.7.?修改gradle配置
1.1.8.打开logcat查看日志
1.1.9.删除多余import
1.1.10.修改checkstyle规则
1.1.11.修改工程名称
1.1.12.adb覆盖安装
1.1.13.导入样例工程时需要修改的地方
1.2.?模拟器
1.2.1.模拟器IP及外部访问
1.2.2.进入模拟器命令行
1.3.?网络
1.3.1.手机与PC之间网络不通
1.3.2.PC不能ping手机
1.3.3.同局域网下手机访问PC
1.4.?小米手机
1.4.1.小米手机,无法打开usb安装
1.4.2.真机进入开发者模式
1.5.?华为或荣耀手机
1.5.1.打开debug级别日志
1.6.?iOS
1.6.1.IPhone webserver备忘
1.7.?Eclipse
1.7.1.?更换包名
1.8.Gradle
1.8.1.asset下以下划线“_”开头的目录被忽略
1.9.Java
1.9.1.安装GraalVm
2.安卓开发问题
2.1.?权限
2.1.1.应用权限设置
2.2.?底层
2.2.1.动态加载dex插件
2.2.2.?实现禁止手动删除数据
2.2.3.?定义安全策略
2.2.4.依赖了kotlin编写的库
2.3.?安全
2.3.1.可信根加解密
2.3.2.?添加自签名根证书
2.4.?JUnit测试
2.4.1.Android中无法写文件
2.4.2.测试准备与清理
2.5.?Logback日志
2.5.1.配置中的属性
2.5.2.?DATA_DIR等内置属性未定义
2.6.版本发布
2.6.1.应用签名
2.6.2.?图标不更新
3.?C#开发问题
3.1.目录权限
3.2.Log4net输出文件路径
3.3.嵌入资源文件
3.4.setup工程配置
3.5.混淆
4.?Hybrid
4.1.?框架
4.2.?禁止选中文字
4.3.引用component
4.4.?生成二维码
5.常识
5.1.统一信用码编码规则及校验
5.2.行政区划编号
5.3.Git命令集
a)在app下创建目录libs
b)在app\build.grale中增加【【微信】】ee(dir: 'libs', include : ['*.jar','*.aar'])
c)将jar、aar文件拷贝到下面;
d)如果【【淘密令】】不能识别,则点击菜单File->In【【微信】】/Restart,然后等等重启即可;
如果手动在【【淘密令】】的De【【微信】】中创建路径、文件,会导致在app中无权限访问,必须在App中自己创建。
- 解压到指定路径;
- ?配置GRADLE_HOME指向该路径;
- 在路径下创建user目录,配置GRADLE_USER_HOME为%GRADLE_HOME%?#xff0c;用于存放临时文件;
- ?将%GRADLE_HOME%\bin加入PATH变量
- 【【淘密令】】的File->Settings中搜索Gradle,设置Gradle路径及GradleUser路径;
- ?如果升级gradle,建议下载后,仍然解压到相同路径,这样所有应用的设置不用变动。
工程目录下build.gradle中指定的是【【淘密令】】的gradle的版本,可能是适配器,尽量不要改,或者改成【【淘密令】】的版本;
gradle\wrapper\gradle-wrapper.properties指定gradle版本,路径可以写成本地下载的zip文件,比如file\:///本地路径,所以这个目录下gradle的zip文件不可以删除。这样可以避免不同的工程都下载一遍。
这两个插件是不可以禁用的,如果禁用,【【淘密令】】启动会异常。
这时可以在disabled_plugins.txt中删除相应记录即可,位置如下:
C:\Users\用户名\AppData\Roaming\Google\【【淘密令】】4.1\disabled_plugins.txt
在项目build.gradle中删除导致错误的行,然后在Tools-Kotlin选择运行Config Kotlin in Project即可。
每次修改gradle文件,会导致无法编译运行工程,这时选择File->Sync Project With Gradle Files后即可。
菜单【【微信】】中,打开logcat查看日志。
还有其他一些功能也在此目录下;
菜单 Code-Optimize Imports可以自动删除所有多余的import;或者使用ctrl+alt+’o’热键。
在Settings-Inspections中搜索提示的关键词,找到规则,然后勾选或勾除
比如将样例工程修改成最终的工程名称,按以下步骤即可完成:
1.关闭【【微信】】;
2.修改项目文件夹的名字;
3.修改OldProjectName.iml文件(在项目的根目录的.idea目录下)的名称为新项名称,即OldProjectName.iml修改为NewProjectName.iml;
4.修改.idea/workspace.xml中相应的名称;
5.修改app/build.gradle中的applicationId;
6.然后把该文件中的external.linked.project.id的值也设置为新项目的名称,即 external.linked.project.id=”NewProjectName”;
7.再次打开【【淘密令】】即可。
adb install xxx.apk 如果已安装了,此时会提示
Failure [INSTALL_FAILED_ALREADY_EXISTS: Attempt to re-install?xxx?without first uninstalling.]
使用adb install -r xxx.apk,可以覆盖安装它,但是仍然保留前面的数据。
- 修改项目目录下gradle/wrapper/gradle-wrapper.properties中的distributionUrl,将版本改成graddle中已有的版本,不然又要下载个老的;
- 修改项目目录下build.gradle,将ext.kotlin_【【微信】】改为当前已有的版本,kotlin版本可以在file-settings-plugins中查看;
- 修改项目目录下app/build.gradle,删除buildSdk【【微信】】,使用当前已有的版本,修改compileSdk、targetSdk为【【淘密令】】当前最新版本,修改minSdk为合适的版本,注意这三个配置项的名称在新版本的gradle中,末尾不能带【【微信】】;
在模拟器内部,宿主机器IP为10.0.0.2,模拟器自身IP为10.0.2.15/127.0.0.1/localhost
如果需要在宿主机中直接访问模拟器内部的TCP端口,需要先做映射。
adb forward tcp:8081?tcp:8080
这样就可以访问?
adb -s emulator-5554 shell
一般是路由器设置有问题,可能在路由器无线设置中开启了AP隔离,使得同一路由器下各个节点之间不可互通。
网络防火墙默认是不会禁用出站请求的,但是如果安装了360,在360的安全防护中心->入口防护体系中,如果选择了局域网防护,则PC无法联通手机。
首先,PC上需启动web服务;
其次,要在系统防火墙高级设置中,添加入站规则开放相应的端口,比如TCP的8080端口;
最后,如果安装了360,需要在安全防护中心->系统防护体系中,关闭网络安全防火。
插入一张Sim卡,没用的Sim卡也可以
不同型号得手机,包括华为、小米等,都是在设置的安卓版本上多次点击,即可进入开发者模式。进入开发者模式后,才可以打开USB调试。
华为手机默认日志级别是info,无论【【淘密令】】中设置的是什么,如果要打开debug级别,按以下步骤设置。
1.拨号界面拨号*#*#【【QQ微信】】#*#*可以看到工程菜单;
2.选择后台设置进入;
3.打开?LOG设置,选择?AP日志;
4.回到【【淘密令】】中,改变一下日志级别,就可以看到debug了;
5.如果还是无法显示,但是adb logcat -d可以查看,则重启以下【【淘密令】】即可。
基于【【微信】】开发webserver,【【微信】】是iOS中的netty。
其他的如GCDWebServer、【【微信】】都已长期无更新
在包上点右键,选择Refactor,出现更名窗口,输入新的名称,一定要选择Rename subpackages,否则只会新建一个空的包
在项目的gradle文件的android下添加以下配置,将此功能关闭掉
aaptOptions{ ? ignoreAssetsPattern '!._' }
下载安装:与java配置完全相同,解压后,配置JA【【微信】】以及将bin设置到系统变量path中
安装nati【【微信】】:gu install nati【【微信】】
安装llvm:【【微信】】ain
安装js引擎:gu install js
原生编译命令:nati【【微信】】
用root用户安装服务是个坏习惯,特别是对外保留接口的服务,一旦有漏洞,黑客获取的就是root权限,所以另建用户安装服务。 useradd -m mesh -m参数要求系统在/home下自动创建用户目录,mesh为用户名称 passwd mesh 为用户设置一个密码
服务程序运行在8523端口,需要将80与443都转发到这个端口,用【【淘密令】】添加转发规则就可以实现。
1.首先安装【【淘密令】】,如果已安装,开启它就可以了; //systemctl stop firewalld ? ? ? ? ? ?# 关闭防火墙 yum -y install 【【微信】】ervices ? ? ? # 安装 【【淘密令】】 服务 systemctl enable 【【淘密令】】 ? ? ? ? ? ?# 设置 【【淘密令】】 服务开机启动 systemctl start 【【淘密令】】 ? ? ? ? ? ? # 启动 【【淘密令】】 服务 service 【【微信】】ave ? ? ? ? ? ? ? ?# 保存 【【淘密令】】 配置 ser【【微信】】 ? ? ? ? ? ? # 重启 【【淘密令】】 服务
2.开放端口; 【【淘密令】】服务启动后,默认禁止了1024以上的端口,所以必须打开 【【淘密令】】 -I INPUT -p tcp --dport 8523 -j ACCEPT
3.然后添加端口转发规则; 【【淘密令】】 -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8523 【【淘密令】】 -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-port 8523
4.查看某个端口的转发规则 【【淘密令】】 -t nat -L -n |?grep?80
5.删除端口转发规则 【【淘密令】】 -t nat -D PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8523
6.最后,保存规则。 service 【【微信】】ave
这样在80与443端口都可以访问。
在【【微信】】.xml中设置,与application同一级别
同时,在application中设置android:re【【微信】】torage="true"
- 使用PathClassLoader类加载器实现动态加载dex插件;
- 加载前需要调用dex命令将jar文件转为dex文件,dex文件可以从外部下载获得;
- 因为ClassLoader加载的规则,不同插件不能互访,但是,插件可以访问apk中的类;
实现一个删除数据的Activity,并在【【微信】】.xml-application-android:manageSpaceActivity引用此【【微信】】,实现自定义的删除数据管理界面,在此只删除可以删除的,或者全部不删除,比如禁止删除sqlite数据库等。
此Activity的定义与普通Activity毫无差异。
在【【微信】】.xml-application-android:networkSecurityConfig中可以自定义安全策略,比如预置自签名的根证书等。
比如okhttp4.x,提示Failed resolution of: Lkotlin/jvm/【【微信】】/Intrinsics,
Kotlin并无特别的优点,建议别用了。限制OkHttp4依赖Kotlin,也用不成了。
使用【【微信】】进行加解密,【【微信】】的底层用的是Tee。
它的问题是,在黑屏情况下,无法使用。
EncryptedSharedPreferences 使用的也是【【微信】】。
使用CA机构签发证书,通常成本较高&
小米未来股市行情预测分析 小米10%毛利率交税吗
小米未来股市行情预测分析报告,小米未来股市行情预测分析最新,小米股票未来十年,小米股市行情未来看好吗摩根士丹利近日表示,给予小米集团“增持”评级,并给出目标价15港元。摩根士丹利指出,小米即将公布的第一季度业绩或将成为其股价催化剂。在智能手机需求疲弱的情况下,该公司有潜力实现利润复苏。摩根士丹利预计,在基本情况下,第一季度小米智能手机毛利率或为10%,预计届时其股价反应将较为温和,达到11.41港元至11.64港元之间。在最佳情况下,当季该公司智能手机毛利率或为11%,较去年第四季度呈现强劲复苏,届时该公司股价将增长5%-7%,达到11.87港元-12.09港元。而在最差的情况下,当季小米智能手机毛利率或为9%,核心盈利环比没有明显改善,该公司股价或将随之下跌3%-5%。