app

android app 版本号 通过versionCode 统一实现获取

无人久伴 提交于 2020-02-02 20:37:41
项目中为配合服务端兼容app版本兼容和app bug版本修复,定制了统一的规则,为了方便版本管理。 大家都知道 项目中有两个关于版本的概念 versionName 和 versionCode versionName是给用户查看的版本号 例如 2.5.1 versionCode是我们程序自己定义的版本号 只增不减 例如 020501 2 为主版本 大变动更新的时候+1 5 为次版本 小变动更新的时候+1 1 为修复版本 每修复一次+1 版本号同步跟着更新 为了方便,我们统一在gradle中进行实现(gradle中版本号会覆盖menifiest文件中的版本号) 首先定义版本号 int versionCode = 020501 //版本更改02 05 01格式 两位分割 为主版本 次版本 修复版本 定义一个方法 gradle中语法和java部分类似,有兴趣的可以自行学习 //通过versionCode获取versionName def getVersionName(int version) { String versionCode = version.toString() String mainV = versionCode.substring(0,2) String nextV = versionCode.substring(2,4) String fixV = versionCode

Android9.0源码APP启动流程

半腔热情 提交于 2020-02-02 00:37:28
本文使用到的相关源码路径: Android9.0 APP启动源码 1、启动简介 1.1、启动流程: 点击桌面App图标,Launcher进程采用Binder IPC向system_server进程发起startActivity请求; system_server进程接收到请求后,向Zygote进程发送创建进程的请求; Zygote进程fork出新的子进程,即App进程; App进程,通过Binder IPC向sytem_server进程发起attachApplication请求; system_server进程在收到请求后,进行一系列准备工作后,再通过binder IPC向App进程发送创建Activity请求; App进程的binder线程(ApplicationThread)在收到请求后,通过handler向主线程发送消息执行创建事务; 主线程在收到Message后,通过反射机制创建目标Activity,并回调Activity.onCreate()等方法; 到此,App便正式启动,开始进入Activity生命周期,执行完onCreate/onStart/onResume方法,UI渲染结束后便可以看到App的主界面; 1.2、Activity启动流程图 1.3、其中涉及到的进程交互方式 Launcher进程与AMS所在的System_Server进程为AIDL方式;

学习进度

。_饼干妹妹 提交于 2020-02-01 23:38:56
AndroidManifest.xml用于指定App内部的运行配置,是一个XML描述文件,根节点为manifest,其中package指定了该App的包名。 uses-permission,该节点用于声明App运行过程中需要的权限名称。例如,访问网络需要上网权限,拍照需要摄像头权限。 application,该节点用于指定App的自身属性,包括App在手机屏幕上显示的图标、App在手机屏幕上显示的名称等。(application节点下还有几个子节点,比如活动activity、服务service、广播接收器receiver、内容提供器provider等。) (2)java,用于存放APP工程的java源代码以及测试用的java代码 (3)res,存放的是APP工程的资源文件。它下面又有四个子目录   ·drawable 存放的是图形描述文件及用户图片   ·layout 存放的是APP页面的布局文件   ·mipmap 存放的是启动图标 分别对应各个类型;   ·values 存放的是一些常量定义文件,如string型的strings.xml,像素常量dimens.xml、颜色colors.xml、样式定义styles.xml 二、Gradle Scripts 主要包含工程的编译配置文件,其中 (1)build.gradle 分为项目级和模块级两种,用于描述APP工程的编译规则 (2

【 React 】- 1 移动App的介绍

◇◆丶佛笑我妖孽 提交于 2020-02-01 21:04:54
1 什么是混合移动App开发 1、苹果上的软件是如何开发出来的:使用的是 OC、或者使用 Swift 这门语言。 2、安卓平台上的软件又是如何开发出来的:使用安卓相关的语言开发的,Java,安卓的控件进行开发。 3、苹果和安卓平台上共有的软件是如何开发出来的:腾讯招两套开发人员【开发组】,手机京东。 4、前端移动 App(Application)开发技术,去开发手机端的应用程序。 5、前端的混合移动 App 开发技术,并没有使用 苹果 或 安卓 官方推荐的 开发平台和开发方式,而是抛弃了 官方提供的方式,使用 前端的独有的技术进行移动 App 开发体验。 什么是移动App开发 :通俗的理解,就是把开发 Web 网站的技术( HTML + CSS + JS ),通过某种方式,移植到移动 App 开发上进行使用,这种利用 Web 开发技术进行移动端开发体验的方式,叫做 混合移动App开发 ! 1.1 关于移动App开发的几个概念 原生开发 :它的英文单词是(NativeApp),指的就是使用 IOS、Android 官方提供的工具、开发平台、配套语言进行 手机App开发的方式; 混合开发 :(HybirdApp)就是使用前端已有的技术,HTML + CSS + JS ,然后再搭配一些相关的打包编译技术,就能够开发出一个手机 App,安装到手机中进行使用; 什么是 App :App是

AndroidManifest.xml详解

烂漫一生 提交于 2020-02-01 18:09:20
我们在进行APP开发的时候都会遇到一个文件:AndroidManifest.xml。从刚开始进行Android开发,到现在已经过去了几个月,还是对这个文件一知半解,只知道它是配置用的。但是这文件里的东西具体有什么用,该怎么用一直都没有理解。借着做项目的机会,仔细研究一下这个文件。 研究AndroidManifest.xml最好的方式自然就是对照着官方文档详细理解项目中每个字段的作用,并且做出一些修改来验证。 AndroidManifest是什么? AndroidManifest官方解释是应用清单(manifest意思是货单),每个应用的根目录中都必须包含一个,并且文件名必须一模一样。这个文件中包含了APP的配置信息,系统需要根据里面的内容运行APP的代码,显示界面。 AndroidManifest的作用是什么? 上述的功能是非常笼统的解释,具体到细节就是: 为应用的 Java 软件包命名。软件包名称充当应用的唯一标识符。 描述应用的各个组件,包括构成应用的 Activity、服务、广播接收器和内容提供程序。它还为实现每个组件的类命名并发布其功能,例如它们可以处理的 Intent 消息。这些声明向 Android 系统告知有关组件以及可以启动这些组件的条件的信息。 确定托管应用组件的进程。 声明应用必须具备哪些权限才能访问 API 中受保护的部分并与其他应用交互

flask数据库连接

放肆的年华 提交于 2020-02-01 15:09:29
添加数据库模型,并添加保存方法 App/models.py from App . ext import model class User ( model . Model ) : id = model . Column ( model . Integer , primary_key = True ) username = model . Column ( model . String ( 16 ) ) def save ( self ) : model . session . add ( self ) model . session . commit ( ) 增加第三库管理文件,把数据库初始化放在ext.py文件中 App/ext.py from flask_sqlalchemy import SQLAlchemy model = SQLAlchemy ( ) def init_ext ( app ) : model . init_app ( app = app ) 在__init__.py中设置sqlite的配置和驱动,并引入第三方扩展库的初始方法。 App/ init .py from flask import Flask from App . ext import init_ext from App . views import init_view def create_app

APP爬取环境配置

孤人 提交于 2020-02-01 09:12:04
APP爬取环境配置 环境配置 Charles抓包工具 mitmproxy抓包工具 Appium自动化测试工具 环境配置 Charles抓包工具 Charles教程: https://www.axihe.com/tools/charles/charles/tutorial.html Charles证书配置 注意,在Android 7以上Charles无法代理https请求,系统默认不信任用户证书,解决方法: 更换Android 7以下的安卓手机测试 修改apk文件,配置安全策略,需要反编译apk文件,较麻烦 mitmproxy抓包工具 mitmproxy地址: https://github.com/mitmproxy/mitmproxy/releases 安装:pip install mitmproxy mitmproxy证书配置 对接python脚本:mitmdump -s script.py 注意: 在Windows上不支持mitmproxy的控制台接口,使用mitmdump、mitmweb Charles默认在本地的8888端口开启一个代理服务,mitmproxy为8080 Charles一般用于抓包分析,mitmproxy则可对接python脚本:重写request(flow)、response(flow)方法等 Appium自动化测试工具 Appium地址: https:/

现代软件工程第一次作业

a 夏天 提交于 2020-02-01 06:46:39
我选择以下三类软件对问题展开回答: Internal Software 、Games以及Mobile Apps。 这些软件的开发者是怎么说服你(陌生人)成为他们的用户的?他们的目标都是盈利么?他们的目标都是赚取用户的现金么?还是别的? 答: Internal Software 比如有些驾校推出的选时练车服务APP,学员被要求下载此款APP方便练车;还有一些培训机构会有属于他们专门的App以方便学员更好的学习、打卡、管理等。 Games 比如王者荣耀,很多人包括我自己在内接触这款游戏主要是因为身边朋友、同学推荐,这主要归咎于游戏制作精良,技术性强,趣味十足,它作为不同年龄段休闲娱乐活动之一,还满足了部分玩家对游戏中社交的需求,开通了多种关系系统,如:恋人、基友、闺蜜等。 Mobiles Apps 例如QQ、微信、百度、淘宝、抖音短视频、网易云音乐、美团外卖、猫眼等等都是满足了各种用户的多种需求,功能性十分强大和突出。我们使用QQ、微信是因为它们方便沟通交流和联系,使用百度是由于它可以帮助我们更好地理解世界,使用淘宝方便购物… …可以说盈利都是他们的目标之一,大的软件企业有属于他们的战略目标,比如成为同行业的佼佼者乃至世界级企业,致力于给用户极致的体验。 这些软件是如何到你手里的(邮购,下载,互相拷贝……) 答:这些软件通常是通过APP商店下载而来

软件分析

我只是一个虾纸丫 提交于 2020-02-01 06:39:47
软件有很多种: Web APP ( 基于网页的软件)、Internal Software (企业或学校或某组织内部的软件)、Games(游戏)、Mobile Apps(手机应用)、Operating Systems(操作系统)、Tools(工具软件),选取一种软件,请分析它们各自的特点。 – 这些软件的开发者是怎么说服你(陌生人)成为他们的用户的?他们的目标都是盈利么?他们的目标都是赚取用户的现金么?还是别的? QQ邮箱:包括163邮箱、网易邮箱等,有免费、市场占有率高、安全等级高等优点。其目标主要是提供高质量的邮箱服务和开展以邮箱为基础的增值业务。 – 这些软件是如何到你手里的(邮购,下载,互相拷贝…… ) 手机应用,网络等方式下载获取到的。 – 这些软件有Bug 么?又是如何更新新版本的? 款软件,难免会出bug,此时用户可通过发现bug反映到官方,由官方反映到程序员,由程序员来解决这个bug。   在手机中,可以通过App应用商店,应用宝等商店获取更新并升级到新版本。或者到QQ邮箱官方网站获取此款软件最新版。 – 此类软件是什么时候开始出现的,同一类型的软件之间是如何竞争的? 发展趋势如何? 此类软件是2002年出现的。在2010年左右出现app版本。 一方面,每一类型的软件都在不断地提升性能,优化用户体验,另一方面,它们也在不断拓展宣传渠道,试图占据更大的市场份额。发展趋势

.NET之全平台一体化的体验

ぃ、小莉子 提交于 2020-02-01 05:47:14
一、前言 近来利用空闲时间研究了一下Xamarin的技术,想想既然提供了如此好的支持,就该尝试一切可能,来一个”大小通吃“。 何为全平台:APP包括Android、IOS、WP,WEB可在Window和Linux部署运行 (进可攻,退可守) 二、简单实现 先来看张图吧 这个是本人实现项目的截图,比较简单。 app那块的话,目前仅实现了Android,IOS的话,没有机器,不想在虚拟机装(已经装了3个Linux了,再装估计要卡爆了) UWP也是机子问题(还未升级到win 10 10568,界面不能实时看到调起来很蛋疼,所以暂时现放着,过段时间补上) 对于我这种情况来说,标题说成是全平台是夸大了一点,但是却是完全可行!!不是弄虚作假的。 下面来说说“进可攻,退可守” 这个问题主要是针对web端的。 先来说说“进可攻”,可以在linux下部署我们的后台网站和数据服务,主要的话还是 Jexus(免安装mono版)和TinyFox 不是我不用ASP.NET Core,而是用的我好揪心所以就没用了。 "退可守",我们还有win server 的IIS 看,我真的没有装mono喔!!! 然后简单说说一些细节上的东西 目前有14个子项目分在5个项目文件夹里面(包含几个测试项目) 01-APP 是app相关的 02-Website 是后台管理的网站,基于NancyFx,身份验证用了自带的Forms