精华内容
下载资源
问答
  • Tasker实现的app界面实时翻译 - 界面翻译4.0

    千次阅读 多人点赞 2019-08-07 16:35:41
    吃了没文化的亏,英文不太好咯,就做了个小功能,主要用于英文app菜单的翻译,又顺便实现其他一些小功能,一共4个功能键。 从左到右依次是: 读取屏幕的文字,仅用于复制 OCR识别屏幕的英文数字,仅用于...

    吃了没文化的亏,英文不太好咯,就做了个小功能,主要用于英文app菜单的翻译,又顺便实现其他一些小功能,一共4个功能键。

    从左到右依次是:

    1. 读取屏幕上的文字,仅用于复制
    2. OCR识别屏幕上的英文数字,仅用于复制
    3. 识别屏幕上的二维码,复制,网址直接访问
    4. 实时翻译开关

    所有功能全程依赖Touchtask插件,务必安装并开启无障碍

    默认双击音量+可唤出功能按钮

     

     

    Tasker官网

    直接导入链接(连接速度好慢):安卓手机在线导入

    配置下载  提取码: 2333

    TouchTask插件下载  提取码: 2333

     

     

    展开全文
  • 对于翻译软件大家都应该使用过,有没有想到将翻译功能直接嵌入到自己的APP中,比如聊天界面,翻译几句话的功能。正好项目由此需求,看了看有道对外提供的接口,原来很简单。一、效果图 说明:由于使用的是模拟器...

    对于翻译软件大家都应该使用过,有没有想到将翻译功能直接嵌入到自己的APP中,比如聊天界面,翻译几句话的功能。正好项目由此需求,看了看有道对外提供的接口,原来很简单。

    一、效果图

    有道翻译.gif
    说明:由于使用的是模拟器演示,没有设置输入中文,就只能看到翻译英文。需要说明的是,我没有设置搜索按钮,就通过设置键盘的回车键来搜索了。

    有道翻译手机截图.png

    说明:这张是手机真机截图,为了看翻译中文的效果。

    二、需要在有道上面做的事情

    1,打开网址:有道注册key网址

    2,填写信息

    有道翻译信息填写.jpg

    3,下图是我填的样例

    有道翻译API.jpg

    说明:这里的key和网址我涂掉了,就这样通过就可以,并不需要在项目中配置什么信息。

    三、代码

    1,布局

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/activity_main"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin">
    
        <EditText
            android:id="@+id/et_input"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="20dp"
            android:background="@null"
            android:hint="请输入要查询的内容"
            android:imeOptions="actionSearch"
            android:lines="1"
            android:singleLine="true" />
    
        <TextView
            android:id="@+id/tv_main"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:text="时刻准备给您显示" />
    </RelativeLayout>
    

    2,首页Java代码

    package com.example.mjj.useyoudaodemo;
    
    import android.content.Context;
    import android.os.Bundle;
    import android.support.v7.app.AppCompatActivity;
    import android.view.KeyEvent;
    import android.view.inputmethod.EditorInfo;
    import android.view.inputmethod.InputMethodManager;
    import android.widget.EditText;
    import android.widget.TextView;
    import android.widget.Toast;
    
    import com.mjj.baseapp.http.OkHttpUtils;
    import com.mjj.baseapp.http.callback.StringCallback;
    import com.mjj.baseapp.json.GsonUtil;
    
    import okhttp3.Call;
    
    /**
     * Description:嵌入有道翻译API
     * <p>
     * Created by Mjj on 2016/12/19.
     */
    
    public class MainActivity extends AppCompatActivity {
    
        private EditText editText;
        private TextView textView;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
    
            initView();
        }
    
        private void initView() {
            setContentView(R.layout.activity_main);
            editText = (EditText) findViewById(R.id.et_input);
            textView = (TextView) findViewById(R.id.tv_main);
    
            // 利用键盘的按钮搜索
            editText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
                @Override
                public boolean onEditorAction(TextView textView, int i, KeyEvent keyEvent) {
                    if (i == EditorInfo.IME_ACTION_SEARCH) {
                        // 先隐藏键盘
                        ((InputMethodManager) editText.getContext().getSystemService(Context.INPUT_METHOD_SERVICE))
                                .hideSoftInputFromWindow(MainActivity.this.getCurrentFocus().getWindowToken(),
                                        InputMethodManager.HIDE_NOT_ALWAYS);
                        httpData();
                        return true;
                    }
                    return false;
                }
            });
        }
    
        private void httpData() {
            OkHttpUtils.get()
                    .url("http://fanyi.youdao.com/openapi.do?")
                    .addParams("keyfrom", "UseYouDaoDemo")
                    .addParams("key", "829332419")
                    .addParams("type", "data")
                    .addParams("doctype", "json")
                    .addParams("version", "1.1")
                    .addParams("q", editText.getText().toString().trim())
                    .build()
                    .execute(new StringCallback() {
                        @Override
                        public void onError(Call call, Exception e, int id) {
                            Toast.makeText(MainActivity.this, "请检查网络", Toast.LENGTH_SHORT).show();
                        }
    
                        @Override
                        public void onResponse(String response, int id) {
                            GsonUtil gsonutil = new GsonUtil();
                            TranslateBean bean = gsonutil.getJsonObject(response, TranslateBean.class);
                            if (null != bean) {
                                int errorCode = bean.getErrorCode();
                                if (errorCode == 20) {
                                    Toast.makeText(MainActivity.this, "要翻译的文本过长", Toast.LENGTH_SHORT).show();
                                } else if (errorCode == 40) {
                                    Toast.makeText(MainActivity.this, "不支持该语言", Toast.LENGTH_SHORT).show();
                                } else if (errorCode == 0) {
                                    textView.setText("");
                                    textView.setText(bean.getTranslation().get(0));
                                }
                            }
                        }
                    });
        }
    }
    

    说明:这里对键盘的回车键做了搜索功能,网络请求使用OKhttp,数据解析Gson。

    3、返回值

    有道翻译返回信息说明.jpg

    说明:其中doctype是指定你希望返回的数据格式;type为固定值;errorCode返回0表示正常请求。

    code小生寄语:
    源码已上传至github,公众号回复 “demo” 查看链接。本篇是code小生的第二篇原创文章,倍感欣喜。时至今日,2016即将过去,距离程序猿放假回家过年的日子也就一个月,所以这段时间里,code小生决定学习一下2016年好的开源项目,汲取其中的精华,推送给各位朋友,一起学习。

    技术分享公众号.jpg

    展开全文
  • IOS APP审核规则翻译

    千次阅读 2014-05-14 20:42:44
    译者注:翻条款类的文档太尼玛折磨了。。。3000多字总算折腾完了,里边可能有...原文链接这(需要IDP登陆):http://developer.apple.com/appstore/guidelines.html 简介 非常高兴您能付出宝贵的时间和精力来开发i

    译者注:翻条款类的文档太尼玛折磨了。。。3000多字总算折腾完了,里边可能有一些不像人话的地方,请指出,我肯定虚心接受,择机改正。文档里可能有好多错别字,我会慢慢发现纠正的~~~祝大家开发快乐!

    原文链接在这(需要IDP登陆):http://developer.apple.com/appstore/guidelines.html

    简介

    非常高兴您能付出宝贵的时间和精力来开发iOS应用。成千上万的开发者的经历表明,无论从专业技术还是经济收入上,开发iOS应用都是个不错的选择,我们将协助你你更快的成为其中一员。这篇App Store Review Guidlines主要是为了协助你弄清楚开发过程中会遇到的一些疑惑,加快你提交应用的审核过程。

    我们认为应用不同于书籍和歌曲,我们不支持这些。如果你要讨论宗教信仰,那么应该去写书。如果你要谈论性,那么写书,或者去写歌,或者去做一个生理卫生的应用。看起来可能有点烦人,但我们仍然决定App Store不接受上述内容。记住下边这些原则,会对你有所帮助:

    有很多小孩子会来商店下载应用,而且除非父母们设置了家长管理(事实很多人不设置),否则孩子们是不受任何限制的。所以我们要关注孩子们。

    现在商店里有超过350,000个应用。我们不需要一个款差劲的应用。一款不能提供一些有用的功能,或者只是哗众取宠的恶作剧的应用,肯定通不过审核。

    如果你的应用一看就是一个三两天拼凑出来的东西,或者你只是想把一个练手应用上到商店里,跟朋友秀一把,那在被拒以后一定要hold住。我们有大批严肃的开发者,不希望高质量应用与这些残次品为伍。

    我们会拒掉那些,有越线内容或行为的应用。那么红线是什么呢?子曾经曰过:“等真见到的时候,我才知道”。还有,我们相信你越线的时候,你也会知道的。

    我们提供一个审核版,如果你的应用被拒了,你可以在那上诉。不过你威胁我们,或者乱喷,肯定是于事无补的。

    如果你试图蒙骗系统(比如:在审核过程中做手脚,盗取用户数据,剽窃其他开发者作品,或者刷评级),你的应用会被下线,开发者身份也会被取消。

    这是一篇动态文档,新应用随时都会带来新的规则,你的应用可能就带来下一条规则。

    最关键的是,我们非常珍视这个平台,并且尊重您的作品。我们真心要创造一个全球最好的平台,在这里你们可以大展才华,并且以此为生。看起来我们限制了太多的东西,恩,其实是因为,我们承诺用户,他们在apple的设备上享有最佳体验。就像你们也希望的那样。

    目录

    1. 条款与条件

    2. 功能

    3. 元数据,评级与分类

    4. 位置

    5. 提醒推送

    6. 游戏中心

    7. iAds

    8. 商标权与商品外观

    9. 媒体内容

    10. 用户接口

    11. 购买与传播

    12. 废弃与聚合

    13. 损坏设备

    14. 个人攻击

    15. 暴力

    16. 负面内容

    17. 隐私

    18. 色情

    19. 宗教,文化和种族

    20. 竞猜,赌博,彩券和抽奖

    21. 慈善与捐助

    22. 法律条件

    1. 条款与条件

    1.1 作为App Store的应用开发者,你受限于如下条款:Program License Agreement (PLA),Human Interface Guidelines (HIG),以及任何你与apple签订的协议和证书。以下规则和示例是为了协助你的应用更快通过审核上架,而不是修正或取代之前的条款。

    2. 功能

    2.1 存在崩溃的应用会被拒。

    2.2 存在明显bug的应用会被拒。

    2.3 不符合开发者描述的应用会被拒。

    2.4 有未说明或隐藏特性或有悖描述的应用会被拒。

    2.5 使用非公开API的应用会被拒。

    2.6 试图读写非允许范围内的数据的应用会被拒。

    2.7 试图以任何方式方法下载代码的应用会被拒。

    2.8 安装或运行其他可执行代码的应用会被拒。

    2.9 任何“beta”,“demo”,“trial”或“test”版本的应用会被拒。

    2.10 iPhone应用必须可以无条件运行在iPad上,支持普通iPhone分辨率和2倍iPhone 3GS分辨率。

    2.11 任何与App Store中上架应用重复的应用会被拒,尤其是已经有了很多的:如放屁,打嗝,照明和爱经。

    2.12 没有用处的应用,web页面简单组合的应用,或任何哗众取宠,不能提供持续价值的应用会被拒。

    2.13 用于市场推广或广告的应用会被拒。

    2.14 有意提供隐蔽或虚假功能,却又不能明显标示的应用会被拒。

    2.15 大于20MB的应用无法通过蜂窝网络下载安装(App Store自动处理)。

    2.16 多任务应用只允许在后谈运行如下服务:VoIP,音频播放,地理位置,任务记录,本地提醒等。

    2.17 应用只允许通过iOS WebKit框架和WebKit Javascript访问web页面。

    2.18 鼓励酗酒,使用违法药物,或诱导未成年人饮酒,吸烟的应用会被拒。

    2.19 提供错误的系统信息或设备数据的应用会被拒。

    2.20 通过许多版本的类似应用对App Store造成干扰的开发者会被取消IDP身份。

    2.21 歌曲和电影应该提交到iTunes store。书籍应该提交到iBookstore。

    2.22 随意通过位置或设备限制用户使用的应用会被拒。

    3. 元数据(名称,描述,评级,分类等)

    3.1 应用或者元数据中提到其他任意移动平台会被拒。

    3.2 元数据有未填写项,存留占位符文本会被拒。

    3.3 描述中提到与应用内容和功能无关信息会被拒。

    3.4 应用在iTunes Connect与设备上显示的名称应该类似,否则会造成混淆。

    3.5 不同尺寸的icon要一致,否则会造成混淆。

    3.6 图标与截屏不符合4+年龄评级的应用会被拒。

    3.7 应用的内容与所选分类和风格不符会被拒。

    3.8 开发者有责任把应用放到恰当的评级。不恰当的评级可能会被Apple修改,甚至删除。

    3.9 开发者有责任给应用撰写恰当的关键词。不恰当的关键词可能会被Apple修改,甚至删除。

    3.10 通过伪造,付费评价或其他非正规手段,获取App Store中较好的评价与星级的开发者会被取消IDP身份。

    3.11 任何提示需要用户重启iOS设备来安装或运行的应用会被拒。

    3.12 应用在提交审核过程中,所有涉及到的URL都要处于正常运行状态,例如保密协议,相关支持页面等。

    4. 位置

    4.1 未提示用户且获得用户允许之前手机,传输或使用位置数据的应用会被拒。

    4.2 使用location-based API来自动控制车辆,飞行器或其他设备的应用会被拒。

    4.3 使用location-based API进行调度,队伍管理或应急服务的而应用会被拒。

    4.4 位置数据只能用于应用提供的直接相关功能或服务,或者有授权的广告。

    5. 提醒推送

    5.1 不使用APN API提供消息推送的应用会被拒。

    5.2 使用APN服务却没从Apple获取一个Push Application ID的应用会被拒。

    5.3 在首次推送消息之前取得的用户允许的应用会被拒。

    5.4 使用提醒推送服务推送敏感的个人或机密信息的应用会被拒。

    5.5 使用提醒推送发送主动消息,欺骗或干扰信息的应用会被拒。

    5.6 应用不可以使用提醒推送发送广告,活动或任何形式的直接推广信息。

    5.7 应用不可以提供收费的提醒推送服务。

    5.8 使用APN服务过度占用网络带宽或容量或通过提醒推送大量占用系统资源的应用会被拒。

    5.9 传输病毒,文件,代码或程序,导致破坏或扰乱正常的APN服务操作的应用会被拒。

    6. 游戏中心

    6.1 向终端用户或第三方展示Player ID的应用会被拒。

    6.2 Player ID被用于Game Center条款款意外的用途的应用会被拒。

    6.3 试图通过Game Center反查,跟踪,描述,关联,发掘,收割,或利用Player ID,别名或其他信息的开发者会被取消IDP身份。

    6.4 Game Center信息,例如Leaderboard得分,只能通过Game Center用于应用中。

    6.5 使用Game Center发送主动消息,欺骗或干扰信息的应用会被拒。

    6.6 使用Game Center过度占用网络带宽或容量的应用会被拒。

    6.7 传输病毒,文件,代码或程序,导致破坏或扰乱正常的Game Center操作,的应用会被拒。

    7. iAds

    7.1 人工刷广告浏览或点击率的应用会被拒。

    7.2 带有空iAd横幅的应用会被拒。

    7.3 设计主要用来展示广告的应用会被拒。

    8. 商标权与商品外观

    8.1 应用必须遵守Guidelines for Using Apple Trademarks and Copyrights 和Apple Trademark List中描述的所有条款和条件。

    8.2 任何误导或暗示Apple为该应用来源或提供商,或Apple以任何形式认可其质量或功能的应用会被拒。

    8.3 外观与现有Apple产品或广告主题类似或混淆的应用会被拒

    8.4 应用名称中出现错误的Apple产品拼写(如,GPS for IPhone, iTunz)的应用会被拒。

    8.5 使用受保护的第三方资源(商标,版权,商业机密,以及其他私有内容),请提供一份文本形式的使用授权。

    8.6 在保证原有内容的商标特征不被覆盖且完全可见的前提下,应用可以通过Google Maps API调用Google Maps和Google Earth图片。任何遮盖或修改Google标志或版权人证明的应用会被拒。

    9. 媒体内容

    9.1 使用MediaPlayer框架意外的方法访问Music Library中媒体数据的应用会被拒。

    9.2 用户界面模仿任何iPod界面的应用会被拒。

    9.3 通过蜂窝网络传输的流媒体音频内容不得超过5MB或多余5分钟。

    9.4 通过蜂窝网络传输超过10分钟流媒体视频内容,必须使用HTTP Live Streaming,并包涵一条基线64kbps的音频HTTP Live流。

    10. 用户界面

    10.1 应用必须遵守Apple iOS Human Interface Guidelines中的条款和条件。

    10.2 外观与iPhone自带应用(如:App Store,iTunes Store和iBookstore)相似的应用会被拒。

    10.3 不按照Apple iOS Human Interface Guidelines中的描述正确使用系统控件的应用会被拒。

    10.4 试图创建多桌面/主屏环境或模拟多应用工具的应用会被拒。

    10.5 修改硬件开关标准功能(例如:音量,震动)的应用会被拒。

    10.6 Apple和我们的用户都界面报以很高期望,希望他设计的超级简洁,精致,充满创造力,深思熟虑。做到这些确实会消耗很多精力,但是值得。Apple在这方面要求非常高。如果你的用户界面过于复杂,甚至仅仅是不够好,都可能被拒。

    11. 购买与流通

    11.1 通过App Store以外的渠道解锁或开启附加属性或功能的应用会被拒。

    11.2 使用In App Purchase API (IAP)意外的系统提供购买内容,功能或服务的应用会被拒。

    11.3 使用IAP为与应用无关的实体商品或商品服务收费的应用会被拒。

    11.4 应用使用IAP为信用账户或其他货币收费,必须在应用中消费。

    11.5 使用IAP向过期的信用账号或货币收费的应用会被拒。

    11.6 使用IAP收费订阅的内容至少要在7天内有效,而且允许在所有iOS设备间共享。

    11.7 用到IAP收费项目的应用必须分派到正确的收费类目中。

    11.8 使用IAP向用户收费以获取iOS内建功能(如摄像头,陀螺仪)的应用会被拒。

    11.9 包涵“出租”内容或服务的应用,在有效期后会被拒。

    11.10 保险类应用必须免费,遵守发布地区的法律,不允许使用IAP。

    11.11 一般来说,越贵的应用审核就越彻底。

    11.12 提供收费订阅的应用必须使用IAP,Apple将会按照Developer Program License Agreement中约定的70/30的比例与开发者分账。

    11.13 应用中如果提供了IAP以外的收费或订阅机制,如:“buy”按钮,跳转到一个购买电子书的web页面,会被拒。

    11.14 应用可以阅读或播放任何在应用以外取得授权的内容(包括指定的杂志,报纸,书籍,音频,音乐和视频),但在应用中不允许出现获取授权的收费链接或按钮。Apple不会对在应用外订阅或购买授权项目收取任何费用。

    12. 抓取与整合

    12.1 从Apple的页面(如:apple.com, iTunes Store, App Store, iTunes Connect, Apple Developer Programs, 等)抓取内容,或利用Apple页面和服务中的内容进行排名的应用会被拒。

    12.2 应用可以使用授权的Apple RSS,例如iTunes Store RSS。

    12.3 简单的web页面裁剪,内容整合或链接收集应用会被拒。

    13. 设备损害

    13.1 任何怂恿用户做出可能损坏Apple设备的行为的应用会被拒。

    13.2 快速耗光设备电力或产生大量热量的应用会被拒。

    14. 人身攻击

    14.1 任何涉嫌诽谤,侮辱,狭隘内容或打击个人或团体的应用会被拒。

    14.2 职业政治讽刺家和幽默作家不受该条款约束。

    15. 暴力

    15.1 展示人或动物被杀戮,致残,枪击,针刺或其他伤害的真实图片的应用会被拒。

    15.2 描述暴力或虐待儿童的应用会被拒。

    15.3 游戏中的“敌人”不能单独的设定为某特定比赛,文化,真实的政府或组织,或者任何现实事物。

    15.4 含有以鼓励非法或鲁莽使用的方式描述真实武器的应用会被拒。

    15.5 带有俄罗斯轮盘游戏的应用会被拒。

    16. 三俗内容

    16.1 介绍过度三俗和粗鲁内容的应用会被拒。

    16.2 设计来惹怒或恶心用户的应用会被拒。

    17. 隐私

    17.1 在未获得用户事先允许,或未告知用户信息将被如何,在哪里使用的情况下,应用不可以传输用户数据。

    17.2 要求用户提供个人信息,如邮箱地址,生日等,才能使用其功能的应用会被拒。

    17.3 专门收集未成年人数据的应用会被拒。

    18. 色情

    18.1 含有韦氏词典中定义的色情素材(explicit descriptions or displays of sexual organs or activities intended to stimulate erotic rather than aesthetic or emotional feelings),的应用会被拒。

    18.2 经常有用户提供色情内容(例如:Chat Roulette http://en.wikipedia.org/wiki/Chatroulette )的应用会被拒。

    19. 信仰,文化和种族

    19.1 带有对一种信仰,文化或种族进行诽谤,侮辱,狭隘,或以他们为目标的暴力或伤害内容的应用会被拒。

    19.2 应用若带有或应用对一种信仰的文字描述,那么这个引用或翻译必须是精确,无歧义的。注释内容可以具有教育性,信息性,但不可以为煽动性。

    20. 竞赛,赌博,彩票和抽奖

    20.1 赌博和竞赛必须是由应用开发者或所有公司发起的。

    20.2 应用中必须展示赌博和竞赛的官方条款,并声明Apple不是发起者,并且在任何情况下与此事无关。

    20.3 开发者必须经过法律允许才能上线一款抽奖应用,而且抽奖应用必须具备以下要素:报酬,机会,和奖金。

    20.4 直接允许用户在应用中购买彩票或抽奖的应用会被拒。

    21. 慈善与捐助

    21.1 含有向已认证的慈善机构捐助功能的应用必须是免费的。

    21.2 慈善募捐必须通过短信息或通过Safari访问web页面完成。

    22. 法律要求

    22.1 应用必须遵守所有发布地区当地法律。开发者有义务了解和遵守各地的法律。

    22.2 任何带有虚假,欺诈和带有歧义的描述的应用会被拒。

    22.3 任何召集,推销和股东犯罪和鲁莽行为的应用会被拒。

    22.4 非法文件共享应用会被拒。

    22.5 任何设计用来非法赌博,包括算牌,的应用会被拒。

    22.6 提供匿名电话或短消息/彩信功能的应用会被拒。

    22.7 任何开发暗中获取用户密码和私有数据的开发者会被取消IDP身份。

    22.8 任何非法律执行部门发布的带有DUI检查点信息,或鼓励且协助酒后驾车的应用会被拒。

    动态文档

    撰写这篇文档,表示我们尽全力与您分享我们是如何审核提交到App Store的应用的,而且我们希望这个指南能够对您开发和提交应用有所帮助。这是一份动态文档,我们将根据新近应用和情况定期更新这篇文档。

    感谢您为iOS开发应用。尽管这是一份“禁止”列表,但请谨记那份更短的“必做”列表。最重要的是,加入我们就是要给用户带来惊喜和愉悦。把世界用最具创意的方式展示给他们,让他们以前所未有的方式生活。根据我们的经验,用户真的会对功能和界面上的改进有所反应。进一步改进你的作品。带给用户超出期望的体验。带给用户前所未有的体验。我们将协助您完成这一切。

    © Apple, 2011

    转自:http://pingguohe.net/2011/09/22/app_store_review_guidelines_for_ios_apps/

    展开全文
  • The App Engine Architecture 翻译

    千次阅读 2010-08-09 21:03:00
    from Programming.Google.App.Engine 第三章 3.1 The App Engine Architecture     <br />  一个传入请求,首先会交给App引擎前端(App Engine frontend)。这一过程由负载...

    from Programming.Google.App.Engine

    第三章

    3.1 The App Engine Architecture

     

     

     

    一个传入请求,首先会交给App引擎前端(App Engine frontend)。这一过程由负载平衡器(load balancer)完成,它的作用是将众多请求最优化地分配到不同的前端服务器(frontend servers)上。某个请求由负载平衡器转发到众多的前端服务器之一后,前端就会根据请求路径的域名(可能是一个Google Apps domain and subdomain 或者是一个appspot.com subdomain)确定这个请求是请求的哪个应用程序,然后查询这个应用程序的配置以决定下一个步骤。

    应用程序的配置告诉前端如何根据请求的URL地址来处理这些请求。一个URL路径可以映射到一个静态文件,他们会被直接送达给客户端,如图像或一段 JavaScript代码文件。或者,一个URL路径可以映射到一个请求处理程序,它是一些应用程序代码,用来生成响应。应用程序的配置是和用户开发的应 用程序一起上传的。

    如果一个请求的URL路径不能在应用程序的配置中找到匹配,前端会返回一个HTTP 404 “Not Found” error响应到客户端。如果你想让客户端获得一个定制的回应,比如一个反映HTTP 404 “Not Found” error的友好的HTML代码,你可以在配置中定义一个URL映射,将所有的网址请求映射到一个可以返回定制回应的程序上。

    如果一个URL路径映射到一个静态文件,前端服务器就会将这个请求转发到静态文件服务器(static file servers)上。这些服务器是专门为请求提供静态文件。因为静态文件不会经常变化,所以这些服务器在网络拓扑结构和缓存方面都进行了优化,以便静态资 源的快速传送。在应用程序的配置中,用户需要告诉App Engine哪些是应用程序需要的静态文件。当您上传应用程序时,这些静态文件就会被放到静态文件服务器上。

    如果请求的URL路径匹配到一个请求处理程序,前端服务器就会将这个请求转发到应用服务器(app servers)上。应用服务器池

    会启动一个相应的应用程序实例,如果已经有一个对应的实例,则重用已存在的实例。应用服务器也是根据配置中URL路径和请求处理程序的对应关系找到对应的请求处理程序的。

    用户可以通过配置前端,使用谷歌帐户来验证用户。前端可以用几个级别的授权,限制一些URL路径的访问权限:所有用户,

    已登录有用户,或者应用程序管理员。如果使用谷歌应用程序的域(Google Apps domain),您还可以设置你的应用程序只允许这个域的用户访应用程。前端检查用户是否登录,如果没有,会重定向到谷歌帐户登录界面。

    应用程序服务器(app servers)使用几个策略来分发请求,并启动处理程序实例,这取决于应用程序的网络流量和资源使用状况。应用服务器的一个目标是最大化应用实例的吞吐 量,使尽可能多的需要的实例运行来处理请求,尽可能少的实例处于空闲。应用服务器的另一个设计目标是,一个请求处理程序不能干涉同台服务器上的另外的请求 处理程序的行为和性能。

    当一个应用服务器(app servers)接收到请求时,服务器检查配置,以确定使用哪些请求处理程序来处理该请求,并调用它们。服务器管理本地资源,包括CPU,内存和执行时间,以确保应用程序不会干扰其他应用程序的资源使用。

    用户的应用程序代码运行在运行时环境(runtime  environment)中,他是服务器硬件和操作系统之上的一个抽象层。运行时环境是一个“沙箱(sandbox)”,它只允许应用程序使用服务器的资源,而不允许干扰其他应用程序的功能。例如,沙箱不允许向

    服务器的文件系统中写操作,也不允许随意地打开网络连接到其他主机。

    但是应用程序可以访问运行时环境以外的各种服务。例如,URL Fetch service 服务允许一个应用程序使用HTTP连接到远程机器,或者使用谷歌的基础设施来获取网页。这些服务和谷歌自己的应用程序如Gmail, Google Reader和Picasa使用的服务是相同的。这些服务提供了一个可扩展的替代方案,这样就不用用户自己开发和执行类似的任务。同时,所有应用服务器使 用相同的服务,这样一个处理程序保存到datastore中的数据可以被另一个处理程序直接使用。

    请求处理程序准备好响应,然后返回,并终止。应用程序服务器不会发送任何数据到客户端,直到请求处理程序已终止,因此它不能保持数据流或保持连接很长一段时间。当处理程序终止时,应用服务器返回响应,至此请求完成。

    前端可以定制客户端的响应。例如如果客户端支持压缩的响应,前端可以将响应数据使用“gzip压缩”格式压缩。这适用于应用程序和静态文件的响应,并自动完成。前端使用几个技术,以确定何时合适使用响应压缩,例如基于Web标准或者已知的浏览器行为。 

    前端,应用服务器和静态文件服务器都是由应用管理器(app master)管理。

    展开全文
  • 打包穿戴设备app - 开发文档翻译

    千次阅读 2015-09-29 17:21:48
    当发布给用户的时候,你必须打包一个穿戴设备app到一个手持设备app中,因为用户不会直接在穿戴设备浏览并安装app。 如果打包恰当,当用户下载手持设备app时,系统会自动的把穿戴设备app安装到配对的穿戴设备中 ...
  • Store Kit代表AppApp Store之间进行通信。程序将从App Store接收那些你想要提供的产品的信息,并将它们显示出来供用户购买。 当用户需要购买某件产品时,程序调用StoreKit来收集购买信息。下图即为基本的store kit...
  • V-Play 文档翻译 App

    千次阅读 2016-02-28 13:43:46
    V-Play 文档翻译 App
  • 语音翻译app排行1、有道翻译官2、百度翻译3、腾讯翻译君4、谷歌翻译5、出国翻译官6、英汉翻译官7、英语口语君8、对话翻译9、搜狗翻译10、微软翻译1、有道翻译官由网易有道推出的语音翻译app,能支持107种语言翻译,...
  • App Bar Google官方课程翻译

    千次阅读 2016-06-20 15:14:03
    原文参见:https://developer.android.com/training/appbar/index.html添加App Barapp bar,也叫做action bar,...使用app bar使你的应用与其他应用保持一致,有利于用户更快的使用你的应用并获得较好的体验。app bar的
  • Google play 开发app的小伙伴避免不了要进行国际化, 众多语言翻译困难, 网上搜索后发现了一键翻译插件:AndroidLocalizationer, 但使用过程中发现很多bug, 并且我使用谷歌翻译时由于语言太多最下方语言被...
  • 由于用户分布于全球各地,公司的App需要显示多语言,Android和iOS有大量的译文需要管理,手工维护极其麻烦,于是这个系统诞生了,方便翻译平台翻译翻译完成之后,开发者将一键编码,直接放置项目中。...
  • 2018最新苹果APP上架App Store流程(超详细)

    万次阅读 多人点赞 2018-03-22 10:30:36
    2018最新整理iOS app上架app详细...申请苹果开发者账号教程上架App Store之前是先安装到苹果手机测试调试好,app能正常运行再上架iOS真机调试测试教程上架过程分七个步骤,按步骤一步步来。仔细看这个流程,少走很...
  • Store Kit Guide(In App Purchase)翻译

    千次阅读 2011-09-12 02:13:33
    一、In App Purchase概览 Store Kit代表AppApp Store之间进行通信。程序将从App Store接收那些你想要提供的产品的信息,并将它们显示出来供用户购买。 当用户需要购买某件产品时,程序调用StoreKit来收集购买...
  • 而这次完成的这个程序完全是依赖别人开源框架来完成了这个技术实现,应用层面这是成功的,但是本质并没有实际算法,技术核心的东西,如果只关心应用层开发上述解决了我们计算机规则字符识别的问题。...
  • Managing Your App's Memory 翻译

    千次阅读 2014-01-24 11:14:26
    因此任何你new的对象或者连接的内存映射(比如打开文件)都会驻留内存。释放这些内存唯一的方式就是,释放对这些对象的和文件引用的持有,以便GC程序能回收这部分内存。(有一种特殊情况,比如代码,系统可以明确...
  • Hbuild 开发H5 APP上架App Store流程

    千次阅读 2019-06-27 16:59:11
    2018最新整理iOS app上架app详细教程 上架iOS需要一个付费688的开发者账号,还没有的话申请一个或者借用。 申请苹果开发者账号教程 上架App Store之前是先安装到苹果手机测试调试好,app能正常运行再上架 ...
  • 之前有人留言让我更新部分文章,下面就为大家分享一下iOS的APP打包上架流程:上传至apple developer1.1 上传准备工作更新上架和发布上架不同,原始版本首次上架的时候就将描述文件和证书之类的文档下载好了,所以...
  • app 上架到AppStore被拒绝的各种原因

    千次阅读 2016-06-15 14:09:21
    1. Termsand conditions(法律与条款)...As a developer of applicationsfor the App Store you are bound by the terms of the Program License Agreement (PLA), Human Interface Guidelines (HIG),and any ot
  • 如果禁止App在后台运行iOSApp类似于Windows的进程,有几种不同的生存周期:而App中的任何View也有类似的生存周期:如果App处在非活动的状态下,那么接着它将进入挂起状态.某些情况下我们可能不希望这样,我们想要当...
  • Airtest 设备安装app

    千次阅读 2020-06-05 15:38:41
    因为check_app()成功返回true,失败抛出异常,所以检测没有的情况下,需要捕获异常,直接安装 #检测是否已经安装app,并重新安装app方法 def installapp(): try: dev.check_app("appPackageName") dev....
  • 苹果App Store审核指南中文翻译

    千次阅读 2014-02-28 23:18:32
    前言 ...我们发布了《App Store审核指南》(App Store Review Guidelines),希望通过它帮您避开开发应用程序过程中的一些问题,并帮你提交应用时加快审核流程。    我们将应用程序(Apps
  • 最近用Hbuilder做跨平台开发,经过一番研究终于苹果商店上架成功了一款产品!这款产品就很简单,直接用hbuilder打包好,然后上传到商店即可。这里参照ios app提交应用商店 这篇文章结合hbui...
  • 从Android(API 23)开始,Android采用两种省电机制来延长电池使用时间,对于用户来说就是当没有连接电源的时候来如何合理管理app的行为。 这两种机制分别是: ... Doze 和 App Standby 管理所有Android6
  • 一个项目做完之后,接下来的...下面涵盖了所有的App被Rejected的原因以及汉语翻译,项目上线遇到问题的基本上在这篇博客中都可以找到答案。1. Terms and conditions(法律与条款)1.1 As a developer of applicati
  • 对我来说,新的app watch可以说是解决了之前使用Sencha Cmd所遇到的麻烦,最简单一个就是修改了样式,由于是Sass文件中修改,需要手动去编译一次样式,这会相当的麻烦。而是要app watch,这就不再是麻烦事,确实是...
  • 前面:这注定是一篇简单粗暴的文章,由于没有太多时间截图,直接抛源代码给大家了哈! 接口地址:http://apistore.baidu.com/astore/serviceinfo/27469.html API的使用详情请查看API接口地址。 ...
  • app被Rejected 的各种原因翻译

    千次阅读 2013-07-31 10:25:43
    1. Terms and conditions(法律与条款... As a developer of applications for the App Store you are bound by the terms of the Program License Agreement (PLA), Human Interface Guidelines (HIG), and any
  • Windows系统下上架iOSAPP

    千次阅读 2018-04-13 09:37:49
    申请苹果开发者账号教程上架App Store之前是先安装到苹果手机测试调试好,app能正常运行再上架iOS真机调试测试教程上架过程分七个步骤,按步骤一步步来。仔细看这个流程,少走很多弯路,不用一步步去试错,节省时间...
  • 如何优化运行webkit的web app

    千次阅读 2014-01-21 14:42:17
    近来公司有个web app 项目运行移动版android系统,发现电脑跑的很流畅的web页面移动版webkit非常不流畅。根本无法和native app相媲美。HTML5的性能还真是让人纠结啊的egg pain...  后来发现国外的 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 78,937
精华内容 31,574
关键字:

在其他app上直接翻译