安卓web应用开发教程_安卓应用 web app开发 - CSDN
  • Android SDK 提供了在 Android 平台上使用 JaVa 语言进行 Android 应用开发必须的工具和 API 接口。 特性 • 应用程序框架 支持组件的重用与替换 • Dalvik Dalvik Dalvik Dalvik 虚拟机 专为移动设备优化 • ...
  • Android Web应用高级编程:移动与嵌入式开发技术》内容简介:熟悉Web app开发开发人员可以掌握如何为Android移动平台开发Web app。 阅读完《Android Web应用高级编程:移动与嵌入式开发技术》一书后,你不仅能很...

    点击下载:
    《Android Web应用高级编程》

    这里写图片描述
    内容简介:
    《Android Web应用高级编程:移动与嵌入式开发技术》内容简介:熟悉Web app开发的开发人员可以掌握如何为Android移动平台开发Web app。
    阅读完《Android Web应用高级编程:移动与嵌入式开发技术》一书后,你不仅能很好地理解Android中的Web应用世界,还能掌握一些辅助工具和框架的使用方法。借助于书中的实际示例,你将了解通过Web方式来构建移动应用所面临的机遇与挑战。

    展开全文
  • 本文原创,转载请注明连接

    本文原创,转载请注明连接 http://blog.csdn.net/u014181326/article/details/46692449


    原文地址 https://developer.android.com/guide/webapps/index.html 英文好的朋友可以直接去看原文

    安卓开发从根本上来说有两种方式:客户端应用开发(通过原生的Android sdk 开发,并打包成可以安装到用户设备上的APK 文件)和web 应用开发(通过标准的web 语言开发,用户不用安装任何东西,只需通过浏览器来打开它就可以访问)。

    如果你基于web方式为Android 设备来开发应用,那么你需要保证允许你指定视觉效果的Andoid web 浏览器(基于WebView 框架)能够在不同配置的屏幕上恰当合适的显示       你的网页。

    图1.你可以让用户通过两种方式浏览你的网页内容:1.通过Android web 浏览器2.通过在应用布局文件中添加WebView 控件

    图一阐明了如何提供浏览网页的方式,通过web 浏览器打开,或通过WebView 控件。

    然而,你开发一个Android 应用,不应该仅仅是开辟了一种让用户浏览你的网站新的方式,更确切的说,你应该想要依据Android 设备本身的特点来设计规划你的网页。

    你甚至能够定义Android 应用和网页之间交互的接口,它允许网页中的Javascript 来调用Andond 应用中原生的APIs.

    你可以通过看下面的文档来开始你为Android 设备做web 开发的旅程:

    让WebApps 支持不同屏幕

    如何为Android 设备量身定做 应用并且支持不同大小屏幕密度。这个文档内的信息是至关重要的,如果你期望你的开发的web 应用可以适用于安卓设备(程序发布后你需要承担方方面面),特别是为手机开发,或通过WebView 开发。

    在WebView 中创建web 应用

    如何通过webView 将javascript 和Android 原生api  结合从而 移植网页到Android 应用

    调试web 应用

    怎样通过javascript控制台api 来调试程序

    最佳实践经验


    这里有一系列的开发经验你需要借鉴,可以给Android设备提供一个优良体验的web 应用。



    展开全文
  • 11.2 应用开发步骤 11.2.1 界面设计始终是第一位——实现UI 11.2.2 必备的动力源泉——数据操作和存储 11.2.3 华丽转身——实现多页面跳转 11.2.4 始终为用户做好服务——增加Service 11.2.5 细节决定成败——完善...
  • Android移动应用开发》 复习题(一) (一)Android的体系结构是怎样的?请简要加以说明。 Android的系统架构采用了分层架构的思想,从上层到底层共包括四层,分别是应用层、应用框架层、系统运行库层以及Linux...

    《Android移动应用开发》

    复习题(一)

    (一)Android的体系结构是怎样的?请简要加以说明。

    Android的系统架构采用了分层架构的思想,从上层到底层共包括四层,分别是应用层、应用框架层、系统运行库层以及Linux内核层。
    应用层:Android平台不仅仅是操作系统,也包含了许多应用程序,譬如SMS短信客户端程序、电话拨号程序、图片浏览器、Web浏览器等应用。这些应用程序都是用Java语言编写的,并且可以被开发人员开发的其他应用程序所替换。
    应用框架层:该层是Android应用开发的基础。应用框架层包括活动管理器、窗口管理器、内容提供者、视图系统、包管理器、电话管理器、资源管理器、位置管理器、通知管理器和XMPP服务十个部分。
    系统运行库层:系统运行库层可以分成两部分,分别是系统库和Android运行时。
    Linux内核层:Android的核心系统服务依赖于Linux内核,如安全性、内存管理、进程管理、网络协议栈和驱动模型。Linux内核也同时作为硬件和软件栈之间的抽象层。

    (二)Android程序结构是怎样的?请简要加以分析。

    解答:如以工程名称Firstdemo作为根目录,将所有自动生成的和非自动生成的文件都保存在这个根目录下。
    (1)src目录:src目录下是java源代码存放目录,里面一般都是.java结尾的java文件。
    (2)gen目录:gen目录是Android开发工具自动生成的文件。目录中有个可自定义的包,包里有两个文件,BuildConfig.java和R.java。BuildConfig.java是Android调试用的。R.java是在建立项目时自动生成的,这个文件是只读模式,不能更改。
    (3)res目录:res目录是资源目录,可以存放应用使用到的各种资源,如XML界面文件、图片、数据等。
    (4)assets目录:assets资源目录一般可用于存放html文件、数据库文件、javascript文件等,还有原始格式的文件,例如二进制格式的音频文件、视频文件等。
    (5)AndroidMamifest.xml
    AndroidMamifest.xml项目清单文件列出了应用程序提供的功能,开发好的各种组件需要在此文件中进行配置,当应用使用到系统内置的应用(如电话服务、互联网服务、短信服务、GPS服务等)还需在此文件中声明使用权限。每个Android程序必须在根目录下包含一个AndroidMamifest.xml文件。

    (三)Activity的四种启动模式是什么?并请加以说明。
    Standard、single Top、single Task、single Instance
    Standard:默认模式,会在启动时创建一个新实例,创建的模式也可以随Intent.FLAG_ACTIVITY_NEW_TASK而改变
    single Top:当启动activity时,有相同的activity在前台与用户交互,那就复用这个activity,这个实例会被调用Activity.onNewIntent()。
    single Task:在启动activity时,若有一个运行着这个activity的task,那这个activity实例会被调到前台,并调用Activity.onNewIntent() ,启动实例的Intent的flag会被设置Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT . singleTask是singleTop的一个扩展集。
    single Instance:开辟一个只允许一个activity实例在里头运行的task. 如果用同样的intent再次启动这个activity,task会被调到前台,其Activity.onNewIntent() 会被调用. 如果这个activity实例要启动一个新activity,那么这个新activity会在一个新task中运行.

    (四)Handler消息传递机制是怎样的?举例加以说明。

    利用Handler消息传递的过程是:使用Handler发送消息,该消息被传送到指定的Message Queue。为了保证正常工作,当前线程必须有Message Queue,而Message Queue 是由Looper 对象来管理的。因此要求当前线程必须有一个Looper对象,根据不同类型的线程,处理情况不同,主要分为以下两类:
    主线程:系统以及为其初始化了Looper对象,因此可以直接创建Handler对象,并由该Handler对象发送,处理消息。
    非主线程:先调用Looper的prepare()方法创建一个Looper对象,然后调用Looper的loop()方法启动它。
    当线程有了Looper对象之后,再创建Handler子类的实例,重写handleMessage()方法处理消息,最后由loop()启动Looper对象。

    (五)如何发送广播?如何接收系统广播消息?
    Android广播分为两个方面:广播发送者和广播接收者。通常情况下,BroadcastReceiver指的就是广播接收者(广播接收器),用于异步接收广播Intent。广播Intent是通过调用Context.sendBroadcast()发送、BroadcastReceiver()接收。广播Intent的发送是通过调用Context.sendBroadcast()、Context.sendOrderedBroadcast()、Context.sendStickyBroadcast()来实现的。通常一个广播Intent可以被订阅了此Intent的多个广播接收者所接收。
    广播接收器只能接收广播,对广播的通知做出反应,很多广播都产生于系统代码,如:时区改变的通知、电池电量不足、用户改变了语言偏好,或者开机启动等。
    广播接收器没有用户界面,但是它可以为它们接收到信息启动一个Activity或者使用NotificationManager来通知用户。

    解答:Android系统中内置了多个系统广播,只要涉及到手机的基本操作,基本上都会发出相应的系统广播。如:开机启动,网络状态改变,拍照,屏幕关闭与开启,点亮不足等等。每个系统广播都具有特定的intent-filter,其中主要包括具体的action,系统广播发出后,将被相应的BroadcastReceiver接收。系统广播在系统内部当特定事件发生时,由系统自动发出。(编程实现略。)

    (六)Service 和 Thread 的区别是什么?为什么使用Service?注意事项是什么?

    Thread是程序执行的最小单元,可以用Thread来执行一些异步操作。而Service是Android的一种机制,当它运行的时候如果是Local Service,那么对应的Service是运行在主进程的main线程中的。如果是Remote Service,那么对应的Service则是运行在独立进程的main线程中。
    Service可以用来处理一些比较复杂的操作,并且不会因为系统内存紧张而被“杀掉”。
    Service不是一个单独的进程,除非单独声明,否则它不会运行在单独的进程中,而是和启动它的程序运行在同一进程中。Service也不是线程,这意味着它将在主线程里运行。

    (七)比较进程内服务与跨进程服务的不同。

    进程内服务:同一个进程下调用的服务, (通常情况下)即在一个应用程序下的服务。
    跨进程服务:通过一个应用程序(客户端)的 Activity 调用另一个应用程序(服务端)的 Service 为跨进程服务。在 Android 中,如果需要在不同进程间实现通信,就需要用到 AIDL 技术去完成。

    (八)Executor、ExecutorService和Executors的区别是什么?

    Executor 是一个简单的标准化接口,用于定义类似于线程的自定义子系统,包括线程池、异步 IO 和轻量级任务框架。根据所使用的具体 Executor 类的不同,可能在新创建的线程中,现有的任务执行线程中,或者调用 execute() 的线程中执行任务,并且可能顺序或并发执行。
    ExecutorService 提供了多个完整的异步任务执行框架。 ExecutorService 管理任务的排队和安排, 并允许受控制的关闭。
    Executors 类提供大多数 Executor 的常见类型和配置的工厂方法, 以及使用它们的几种实用工具方法
    Java 里面线程池的顶级接口是 Executor ,但是严格意义上讲 Executor 并不是一个线程池,而只是一个执行线程的工具。真正的线程池接口是 ExecutorService 。ExecutorService 继承Executor 。Executors 类为创建 ExecutorService 提供了便捷的工厂方法。

    (九)ThreadPoolExecutor和ExecutorService有怎样的关系?ThreadPoolExecutor的构造方法是怎样的?试对ThreadPoolExecutor构造方法的参数加以说明。

    关系:ThreadPoolExecutor是ExecutorSevice的一个实现类, 它使用可能的儿个池线程之一执行每个提交的任务,通常使用Executors工厂方法配置。
    方法:1. 用给定的初始参数和默认的线程工厂及被拒绝的执行处理程序创建新的ThreadPoolExecutor.
    2. 用给定的初始参数和默认的线程工厂创建新的ThreadpoolExecutor.
    3. 用给定的初始参数和默认被拒绝的执行处理程序创建新的ThreadPoolExecutor.
    4. 用给定的初始参数创建新的ThreadPoolExecutor.
    说明:✧corePoolSize: 池中所保存的线程数,包括空闲线程。
    ✧maximumPoolSize: 池中允许的最大线程数。
    ✧keepAliveTime: 当线程数大于核心时,此为终止前多余的空闲线程等待新任务的最长时间。
    ✧unit: keepAliveTime 参数的时间单位。
    ✧workQueue;:执行前用于保持任务的队列。此队列仅保持由execute 方法提交的
    Runnable任务。
    ✧threadFactory;:执行程序创建新线程时使用的工厂,
    ✧Handler: 由于超出线程范围和队列容量而使执行被阻塞时所使用的处理程序。

    (十)为什么说Executors类为创建ExecutorService提供了便捷的工厂方法?

    要配置一个线程池是比较复杂的, 尤其是对于线程池的原理不是很清楚的情况下, 很有可能配置的线程池不是较优的, 因此在 Executors 类里面提供了一些静态工厂, 生成一些常用的线程池。
    ( 1) newCachedThreadPool : 创建一个可缓存的线程池。如果线程池的大小超过了处理任务所需要的线程,那么就会回收部分空闲( 60 秒不执行任务)的线程,当任务数增加时,此线程池又可以智能地添加新线程来处理任务。 此线程池不会对线程池大小做限制, 线程池大小完全依赖于操作系统(或者说 JVM )能够创建的最大线程大小。
    ( 2) newFixedThreadPool : 创建固定大小的线程池。每次提交一个任务就创建一个线程,直到线程达到线程池的最大大小。 线程池的大小一旦达到最大值就会保持不变, 如果某个线程因为执行异常而结束,那么线程池会补充一个新线程。
    ( 3) newSingleThreadExecutor : 创建一个单线程的线程池。这个线程池只有一个线程在工作,也就是相当于单线程串行执行所有任务。 如果这个唯一的线程因为异常结束, 那么会有一个新的线程来替代它。此线程池保证所有任务的执行顺序按照任务的提交顺序执行。
    ( 4) newScheduledThreadPool :创建一个定长线程池, 此线程池支持定时以及周期性执行任务的需求。

    (十一)Java中的强引用、软引用、弱引用的区别是什么?

    强引用:是指创建一个对象并把这个对象赋值给一一个引用变量。 强引用不为null时,它指向的对象水远不会被垃圾回收,即使当内存不足时。当强引用被置为nul时,该对象则被标记为可回收的,但是GC可能依旧没有回收它,这和GC的回收算法有关,同时该对象仍然占着内存。总之,我们不能保证可回收的对象被GC回收。
    软引用:通过SoftReference类来实现。软引用指向的对象,不用置null,也可以被GC回收,对象是否被释放取决于GC算法以及GC运行时可用的内存数量。通俗地讲,内存空间足够,GC就不会回收它;如果内存空间不足了,就会回收这些对象的内存。
    弱引用:通过WeakReference类来创建。GC运行时如果碰到了弱引用对象,不管当前内存空间足够与否,都会回收它的内存,但是也有可能需要GC多次才能发现和释放弱引用的对象。
    软引用和弱引用都可以与引用队列( ReferenceQueue)关联,这样就可以知道软引用或者弱引用是否被回收。

    (十二)什么是观察者模式?观察者模式的使用场景是怎样的?观察者模式的优缺点是什么?试编程加以说明。

    观察者模式就是定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新。
    使用场景:
    (1)关联行为场景。需要注意的是,关联行为是可拆分的,而不是“组合”关系。
    (2)事件多级触发场景。
    (3)跨系统的消息交换场景,如消息队列的处理机制。
    优点:观察者和被观察者之间是抽象耦合;建立了一套触发机制。
    缺点:开发和调试比较复杂,而且一个观察者卡壳,会影响整体的执行效率。同时多级触发时的效率让人担忧。

    (十三)什么是装饰模式?装饰模式的使用场景是怎样的?装饰模式的优缺点是什么?试编程加以说明。

    装饰模式就是动态地给一个对象添加一些额外的职责。
    使用场景:
    (1)需要扩展一个类的功能,或给一个类增加附加功能。
    (2)需要动态地给一个对象增加功能,这些功能可以再动态地撤销。
    (3)需要为一批的兄弟类进行改装或加装功能,当然是首选装饰模式。
    优点:
    (1)装饰类和被装饰类可以独立发展,而不会相互耦合。
    (2)装饰模式是继承关系的一个替代方案。
    (3)装饰模式可以动态地扩展一个实现类的功能,这不需要多说,装饰模式的定义就是如此。
    缺点:多层类的装饰太过复杂。

    (十四)循环对象 Looper 的作用是什么?请加以说明。

    用于为一个线程开启一个消息队列(MessageQueue),循环等待其他线程发送消息,当有消息时会唤起线程来处理消息,直到线程结束为止。通常情况下Android中并不会为新线程开启消息循环,不会用到Looper,而主线程除外,系统自动为主线程创建一个Looper对象,并创建消息队列,所以主线程会一直运行, 以处理用户事件,直至退出。
    当需要一个线程时,这个线程要能够循环处理其他线程发来的消息事件,或者需要长期与其他线程进行复杂的交互,这时就需要用到Looper来为线程建立消息队列。
    Looper对象提供了以下几个方法:
    ●prepare(): 用于初始化Looper, prepare( )方法保证每个线程至多只有一个Looper对象。
    ●loop(): 用于开启消息循环,当调用了loop( )方法后,Looper线程就真正地开始工作
    了,它会从消息队列中获取消息并交给对应的Handle对象处理消息。
    ●quit(): 用于结束Looper消息循环。

    (十五)Android客户端程序架构的设计一般应考虑哪些问题?(参考教材P374)

    (1)全局变量的定义和使用及全局数据配置;
    (2)推送的实现;
    (3)对新版本的监听和自动下载更新的实现;
    (4)相对完整的基础工具包和核心工具包(类包);
    (5)对客户端各页面单击率的统计及相应数据分析(对用户行为的分析);
    (6)嵌入广告的实现;
    (7) Android 使用UncaughtExceptionHandler捕获全局异常(线程终止异常处理);
    (8) Android系统账户的实现;(9)整个应用的后台服务;
    (10)流量统计;
    (11)整个应用的缓存实现;
    (12)整个应用的内存管理以及内存泄漏的避免;
    (13)整个应用的广播接收机制;
    (14)整个应用的并发设计模式,等等。

    (十六)如何自定义适配器与ListView控件相绑定?扩展BaseAdapter类需要重写哪些方法?试编程加以说明。
    (P40)

    展开全文
  • Android WebAPP开发入门

    2018-05-15 11:55:15
    如果想发行一个web应用(或只包含网页)作为客户端的一部分,可以使用webview。WebView继承至View可以用于activity的布局来显示网页。但不包括一个完整网页浏览器的任何特征,例如:导航控制、地址栏等。默认的...

    使用WebView开发web app

    如果想发行一个web应用(或只包含网页)作为客户端的一部分,可以使用webview。WebView继承至View可以用于activity的布局来显示网页。但不包括一个完整网页浏览器的任何特征,例如:导航控制、地址栏等。默认的Webview所能做是显示一个网页。

    使用WebView一个很有用的常见情况是:应用程序提供的一些信息可能需要更新,例如:最终用户协议、用户指南等。在这些情境下使用WebView可以使应用避免更新升级。在Android应用程序中,创建一个Activity包含WebView,可以使用它显示托管在网上的文档。

    还有一种有用的情况是:应用程序向用户提供数据总是需要请求一个网络连接来检索数据,例如:电子邮件。这种情况下,你可以发现使用WebView来显示网页和所有用户数据比起执行网络请求、解析数据、渲染布局要更简单。因此,可以设计一个适合Android设备的网页,然后在加载网页的Android应用程序中实现WebView。

    在应用程序中添加WebView

    在使用< WebView > 标签添加到布局中,如下:

    <?xml version="1.0" encoding="utf-8"?>
    <WebView  xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/webview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"/>
    

    WebView加载网页使用 loadUrl(),如下:

    WebView myWebView = (WebView) findViewById(R.id.webview);
    myWebView.loadUrl("http://www.example.com");
    

    网页加载需要INTERNET权限,在AndroidManifest.xml文件中添加权限:

    <manifest ... >
        <uses-permission android:name="android.permission.INTERNET" />
        ...
    </manifest>
    

    在WebView中使用JavaScript

    如果计划在WebView中使用JavaScript加载网页,需要启用JavaScript。一旦JavaScript启用,就可以在应用程序代码和JS代码之间创建接口。

    WebView默认不启用JavaScript。启用如下:

    WebView myWebView = (WebView) findViewById(R.id.webview);
    WebSettings webSettings = myWebView.getSettings();
    webSettings.setJavaScriptEnabled(true);
    

    JS 与Android交互

    当开发一个专门为WebView在Android应用程序中设计的Web应用程序时,可以在JavaScript代码和客户端Android代码之间创建接口。例如:JS调用一个Android的方法来显示一个对话框,而不是使用JS的alert()函数。
    通过addJavascriptInterface(),绑定JS与Android代码。如下:

    public class WebAppInterface {
        Context mContext;
    
        /** Instantiate the interface and set the context */
        WebAppInterface(Context c) {
            mContext = c;
        }
    
        /** Show a toast from the web page */
        @JavascriptInterface
        public void showToast(String toast) {
            Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show();
        }
    }
    

    注意:如果你的 targetSdkVersion 是17或更高,想要获得JS就必须给对应的Android方法(方法必须是public)添加@JavascriptInterface注解

    使用addJavascriptInterface()绑定:

    WebView webView = (WebView) findViewById(R.id.webview);
    webView.addJavascriptInterface(new WebAppInterface(this), "Android");
    //这里的参数"Android",将在JS中由于调用Android方法,如:Android.showToast(toast);
    

    网页通过JS方法调用Android:

    <input type="button" value="Say hello" onClick="showAndroidToast('Hello Android!')" />
    
    <script type="text/javascript">
        function showAndroidToast(toast) {
            Android.showToast(toast);
        }
    </script>
    

    处理页面导航

    当用户从WebView中的网页点击链接时,默认行为是Android启动一个处理URL的应用程序。通常,默认的网页浏览器会打开并加载目标URL。但是,可以重写这种行为使网页在WebView中打开。
    用户点击打开连接,只需为WebView提供一个WebViewClient,使用setWebViewClient():

    WebView myWebView = (WebView) findViewById(R.id.webview);
    myWebView.setWebViewClient(new WebViewClient());
    

    如果您希望更多地控制单击的链接加载的位置,创建自己的WebViewClient重写shouldOverrideUrlLoading() 方法,如下:

    private class MyWebViewClient extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            if (Uri.parse(url).getHost().equals("www.example.com")) {
                // This is my web site, so do not override; let my WebView load the page
                return false;
            }
            // Otherwise, the link is not for a page on my site, so launch another Activity that handles URLs
            Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
            startActivity(intent);
            return true;
        }
    }
    

    为WebView创建一个新的WebViewClient实例:

    WebView myWebView = (WebView) findViewById(R.id.webview);
    myWebView.setWebViewClient(new MyWebViewClient());
    

    网页浏览历史

    当WebView覆盖URL加载时,它会自动累积访问过的网页的历史。通过goBack() 和goForward()可以再浏览历史中后退、前进。如下,当在Activity中按返回键时:

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        // Check if the key event was the Back button and if there's history
        if ((keyCode == KeyEvent.KEYCODE_BACK) && myWebView.canGoBack()) {
            myWebView.goBack();
            return true;
        }
        // If it wasn't the Back key or there's no web page history, bubble up to the default
        // system behavior (probably exit the activity)
        return super.onKeyDown(keyCode, event);
    }
    

    如果用户存在实际的浏览记录canGoBack()返回true。同样使用canGoForward()检查是否有向前的历史。如果不检查,当用户到达历史结束的时候goBack()和GgoForward()就什么也做不了。

    展开全文
  • Delphi XE8跨平台开发让你使用一套代码完成iOS和Android移动应用开发。强大的控件支持,让你可以不用编写一句代码并在短短几分钟内完成数据库的读写 应用开发,开发效率得到充分提升,让编程不再是枯燥无味的工作。...
    Delphi <wbr>XE8 <wbr>iOS与Android移动应用开发(APP开发)[完整中文版]

         Delphi XE8 iOS与Android移动应用开发(APP开发)[完整中文版],这是一本不可多得的介绍使用delphi xe8开发iOS与Android移动应用的电子书,实用的技术开发教程与技术开发手册。

        Delphi XE8跨平台开发让你使用一套代码完成iOS和Android移动应用开发。强大的控件支持,让你可以不用编写一句代码并在短短几分钟内完成数据库的读写 应用开发,开发效率得到充分提升,让编程不再是枯燥无味的工作。全书400多页,从开发环境的安装配置到使用基本界面控件、使用移动设备功能(移动定位、 照像机等)、使用后端服务、访问数据库等都作了全面介绍,是第一本国内最全的中文版Delphi XE8技术开发教程。本书需要有一定delphi基础知识的人阅读。

            

    第一章     移动应用程序开发(iOS和Android) 17

    1.     安装与配置   17

    2.     使用基本用户界面控件      18

    3.     使用设备功能       20

    4.     使用后端服务       21

    5.     访问数据库   21

    第二章     配置Mac上的开发环境(IOS) 23

    2.1 Mac  iOS 的要求      23

    2.2 配置 Mac 上的iOS模拟器         24

    2.2.1 安装平台助手    24

    2.2.2 运行平台助手    25

    2.2.3 Mac上安装Xcode        26

    2.3 配置 MaciOS 硬件设备运行环境        28

    2.3.1 Mac上安装Xcode命令行工具      28

    2.3.2 注册一个开发者账户   30

    2.3.3 申请、下载并安装你的开发证书      30

    2.3.4 注册您的设备         32

    2.3.5 创建与安装配置文件   33

    第三章     配置WINDOWS PC上的开发环境(iOS)    36

    3.1 配置 RAD Studio 环境           37

    3.1.1创建与Mac连接的配置   37

    3.1.2iOS设备添加一个SDK    40

    第四章     配置WINDOWS PC上的开发环境 (Android)    43

    4.1设置 RAD Studio 环境 43

    4.1.1 安装RAD Studio android 开发工具安装选项        44

    4.1.2 在开发环境中配置 Android SDK   46

    4.2安装Android  USB 驱动程序(必须) 50

    第五章     创建移动平台应用程序 (iOS and Android)   54

    5.1在你开始之前         54

    5.2创建一个新的AndroidiOS FireMonkey应用       55

    5.3选择Style         56

    5.4在多设备窗体上放置组件   56

    5.5添加视图到项目    60

    5.6编写用户单击按钮的事件处理程序  60

    5.7测试移动应用程序         62

    5.7.1Android 设备上测试应用程序   63

    5.7.2 iOS测试应用程序         64

    第六章     使用不同风格的按钮控件 (iOS and Android) 67

    6.1移动平台中的按钮         67

    6.2定义按钮控件的友好界面   68

    6.2.1使用按钮控件的 TintColor  IconTintColor属性      69

    6.2.2自定义按钮控件的图片    71

    6.3使用按钮控件创建Segmented Control     72

    6.4在工具栏创建 Scope Bar      74

    第七章     使用日历控件选取日期  (iOS and Android)  76

    7.1移动平台中的日历         76

    7.2为用户更改的日期编写事件处理程序      78

    第八章     组合框控件的使用 (iOS and Android)     81

    8.1多设备应用程序中的选择器       81

    8.2使用代码建立列表数据项   84

    8.3显示一个指定的项目    84

    8.4编写用户选择后的事件处理程序       86

    第九章     使用地图控件 (iOS and Android)  88

    9.1TMapView 控件的基本功能         89

    9.2创建示例应用程序         89

    9.2.1配置 Android 应用程序以使用 TMapView 控件       89

    9.2.2设计用户界面     89

    9.3运行这个应用程序         94

    第十章     配置Android应用程序使用谷歌地图    97

    10.1获取谷歌地图API 密钥     97

    10.1.1检索您的应用程序证书 97

    10.1.2在谷歌 Api 控制台中创建 API 项目 98

    10.1.3申请Maps API密钥 99

    10.2设定具体项目的选项 99

    10.2.1在许可列表中检查配置 100

    10.2.2检查受权列表   101

    10.2.3设置apiKey键值      102

    第十一章 使用MultiView控件(iOS and Android) 104

    11.1关于TMultiView组件 104

    11.1.1主面板呈现方式       105

    11.2设计用户界面       109

    11.3运行示例应用程序      115

    11.4移动应用使用TMultiView的样例程序   116

    第十二章 使用Web浏览器控件 (iOS and Android)    118

    12.1设计用户界面       119

    12.2编写Edit 改变URL后自动打开网页的处理程序 121

    12.2.1编写一个打开网页的公用方法     122

    12.2.2编写 OnChange 事件处理程序代码   123

    12.2.3编写Back按钮的事件处理程序    124

    12.3 Web 浏览器应用程序选择适合的虚拟键盘   125

    12.4移动应用使用WebBrowser的样例程序         126

    第十三章 使用选项卡控件(iOS and Android)     128

    13.1iOS  Android 上的选项卡使用本机样式      128

    13.2在窗体设计器中设计选项卡     129

    13.2.1比较 iOS  Android 平台上选项卡设置 133

    13.3让选项卡使用自定义的多分辨率图标    139

    13.3.1在选项卡上显示多分辨率自定义图标         140

    13.3.2使用单分辨率位图为自定义图标         143

    13.4轻松管理选项卡内部控件 145

    13.5在运行时更改页面      147

    13.5.1通过用户点击选项卡      147

    13.5.2通过 Actions  ActionList    147

    13.5.3通过代码   152

    第十四章 使用LiveBindings填充ListView  (iOS and Android)    154

    14.1创建项目        154

    14.2添加字段        156

    14.3创建LiveBindings 157

    14.3添加更多的字段(图像、价格)    160

    14.5添加onButtonClick事件处理程序    161

    14.5.1添加 onButtonClick 事件处理程序      161

    14.6查看结果        162

    第十五章 使用ListBox控件显示数据 (iOS and Android) 164

    15.1使用ListBox 控件在移动平台上显示表数据          164

    15.1.1普通列表   164

    15.1.2分组列表   165

    15.1.3搜索框        166

    15.2创建ListBox 列表项    166

    15.2.1添加标题   169

    15.2.2添加组页眉/页脚到列表         170

    15.2.3分组显示各自的列表项 171

    15.2.4添加复选框或其他附件到列表项         172

    15.2.5添加图标到列表项  172

    15.2.6添加详细信息到项目      173

    15.2.7运行应用程序   173

    15.3创建ListBox 应用程序        173

    15.3.1从您的代码添加项目到ListBox     174

    15.3.2创建一个溢出菜单  177

    15.3.3创建溢出按钮的事件处理程序     179

    15.3.4增加搜索框        180

    15.3.5运行应用程序   181

    第十六章 使用LiveBindings来填充 ListBox  (iOS and Android) 183

    16.1创建项目        183

    16.2创建 LiveBindings         186

    16.3结果        188

    第十七章 让布局适应不同大小与方向窗体  (iOS and Android)   190

    17.1FireMonkey 控件特性          190

    17.2FireMonkey 控件常见布局属性        190

    17.2.1 Align 属性 190

    17.2.2 Margins属性     192

    17.2.3Padding 属性     192

    17.2.4Anchors 属性     193

    17.3使用Tlayout控件         194

    第十八章 拍摄并分享照片,分享文本  (iOS and Android)     196

    18.1教程主题        200

    第十九章 使用位置传感器 (iOS and Android)   201

    19.1设计用户界面       202

    19.3读取位置信息(纬度、 经度   204

    19.2位置传感器   204

    19.4在谷歌地图上显示当前位置     206

    19.5使用反向地理编码      207

    19.6在列表框中显示一个可读的地址    210

    19.7提升用户授权开启位置传感器的方法    211

    第二十章 使用通知提示(iOS and Android)   212

    20.1三个基本的通知或警报样式     212

    20.2移动设备上的通知中心      213

    20.3访问通知服务       214

    20.4添加 FMLocalNotificationPermission (iOS 8)       215

    20.5从代码中设置图标徽章数和通知数         215

    20.6计划通知        217

    20.7重复通知消息       219

    20.8更新或取消一个计划(或重复)通知消息   221

    20.9立即提交通知消息      222

    20.10自定义通知声音         224

    20.11横幅通知或提示通知        228

    20.12给提示通知增加控制 (iOS)         229

    20.13添加通知响应     231

    20.14运行应用     232

    第二十一章   使用远程通知 (iOS and Android)  233

    21.1远程推送通知       233

    21.2 REST BAAS 框架   234

    21.3教程主题        234

    第二十二章   多设备应用程序接收推送通知 235

    22.1设计和设置用户界面 235

    22.2创建事件处理程序      240

    22.3 Android 的设置   243

    22.4 iOS 的设置    244

    22.5在移动设备上运行您的应用程序    244

    第二十三章   在移动设备上使用电话拨号程序  (iOS and Android)   249

    23.1关于移动设备上的电话拨号服务    249

    23.2访问电话拨号服务      249

    23.3设计用户界面       251

    23.4获取运营商信息  251

    23.4.1运行应用程序   252

    23.5拨打电话        253

    23.6检测通话状态的变化 255

    23.6.1编写 OnCallStateChanged 事件处理程序  256

    第二十四章   使用 BaaS 后端存储 (iOS and Android) 261

    24.1Kinvey  Parse中准备你的应用程序      262

    24.2设计和设置的用户界面      262

    24.3添加后端控件       263

    24.4创建和存储对象  265

    24.5删除对象        266

    24.6检索对象        268

    24.7运行你的应用程序      272

    第二十五章   使用 dbExpress 访问 InterBase ToGo   (iOS and Android)  274

    25.1使用 dbExpress 连接数据库    275

    25.2设计与设置用户界面 276

    25.3连接到数据   277

    25.4部署您的应用程序到移动设备         280

    25.4.1在移动设备上部署 InterBase ToGodbExpress 驱动及数据文件       280

    25.4.2修改代码以连接到移动设备本地数据库文件   283

    25.5在模拟器或移动设备上运行应用程序    285

    25.6故障排除        286

    第二十六章   使用 FireDAC 访问 InterBase ToGo  (iOS and Android) 288

    26.1使用 FireDAC 连接数据库         290

    26.2设计与设置用户界面 290

    26.3连接到数据   291

    26.4部署您的应用程序到移动设备         295

    26.4.1在移动设备上部署 InterBase ToGo 所必须的文件及数据文件    295

    26.5在模拟器或移动设备上运行应用程序    298

    26.6故障排除        299

    第二十七章   使用 dbExpress 访问 SQLite  (iOS and Android)    301

    27.1使用 dbExpress 连接数据库    302

    27.2 Windows 下创建开发数据库      302

    27.2.1在数据资源管理器创建数据库      302

    27.2.2在数据资源管理器中创建表 304

    27.3设计与设置用户界面 305

    27.4连接到数据   307

    27.5编写显示删除按钮的功能 309

    27.6编写新建条目功能      310

    27.7创建删除按钮事件处理程序     314

    27.8设置移动平台数据库部署 316

    27.8.1Deployment Manager添加并配置您的数据库文件     316

    27.9修改代码以连接到移动设备本地数据库文件       317

    27.9.1指定在移动设备上的SQLite数据库的位置        317

    27.9.2自动创建表        318

    27.10在模拟器或移动设备上运行应用程序 319

    第二十八章   使用 FireDAC 访问 SQLite  (iOS and Android)  322

    28.1使用 FireDAC 连接数据库         323

    28.2使用 FireDAC 创建数据库         323

    28.3设计与设置用户界面 325

    28.4使用 LiveBindings 向导      327

    28.4.1添加 LiveBinding 控件    327

    28.4.2连接数据    329

    28.4.3ListView中显示shopitem 331

    28.5编写显示删除按钮的功能 331

    28.6编写新建条目功能      332

    28.7创建删除按钮事件处理程序     336

    28.8为运行应用程序作准备      338

    28.9设置移动平台数据库部署 338

    28.9.1Deployment Manager添加并配置您的数据库文件     338

    28.10修改代码以连接到移动设备本地数据库文件     339

    28.10.1指定在移动设备上的SQLite数据库的位置      339

    28.10.2自动创建表     340

    28.11在模拟器或移动设备上运行应用程序 341

    第二十九章   从移动客户端连接到企业数据库 (iOS and Android)    343

    29.1创建中间层 DataSnap 服务      344

    29.1.1创建DataSnap 服务VCL应用程序       344

    29.1.2定义DataSnap 服务器上的数据集       346

    29.1.3暴露DataSnap 服务器数据集       348

    29.1.4运行 DataSnap 服务       349

    29.2创建连接到DataSnap服务器的移动应用程序      350

    29.3部署 MIDAS 库到 iOS 模拟器         353

    29.4在移动平台上运行你的应用程序    353

    第三十章 在移动应用中使用FireDAC (iOS and Android) 355

    30.1使用 FireDAC 连接数据库         355

    30.2设计与设置用户界面 356

    30.3使用 LiveBindings 向导      357

    30.3.1添加 LiveBinding 控件    357

    30.3.2添加 ListView 控件          359

    30.4ListView中显示数据       361

    30.5为运行应用程序作准备      362

    30.6设置移动平台数据库部署 362

    30.6.1Deployment Manager添加并配置您的数据库文件      362

    30.7修改代码以连接到移动设备本地数据库文件       363

    30.7.1指定在移动设备上的SQLite数据库的位置        363

    30.8在模拟器或移动设备上运行应用程序    365

    附一:在目标平台上按钮可使用样式与颜色汇总表 370

    附二:Android权限设置 376

     FireMonkey Android 应用程序设置一些基本的权限    376

    基本使用权限       377

    高级用途权限       382

    附三:使用Action Lists拍摄和分享图片及分享文本 386

    构建应用程序的用户界面 386

    用移动设备摄像头拍照      387

    将图片保存到设备照片库 389

    使用移动设备图片库中的图片         390

    使用图像编辑       390

    共享或打印图片  393

    共享文本        394

    附四:使用 FireMonkey 接口拍照 397

    构建您的应用程序的用户界面         397

    使用设备上的相机拍照      398

    运行应用程序       400

    将图片保存到设备照片库 401

    从设备图片库中选择一张图片         402

    附五:部署IBLite 和测试 IBToGo许可    405

    IBLite许可证          405

    IBToGo测试部署试用许可证    407

    IBToGo生产部署许可证     409

    从早期产品版本迁移InterBaseIBLiteToGo          410

    展开全文
  • Android平台开发之旅(第2版)》涵盖Android3/4的新特性,立足实际的开发案例,介绍了Android平台开发的基础概念、实用技术和应用模式。主要内容包括应用程序框架、高级界面、数据库应用、网络通信与Web开发、无线...
  • 对于原生态开发、web 应用开发已经混合模式开发,本人认为并不是哪一种就是最好的,哪一种就是最差的,这个完全是根据自己的需求,选择一种合适的开发模式。他们同时具备自己的有点,同时也有自身的缺点,我们根据...
  • 导言:很多人想当然的认为Delphi不能开发B/S WEB应用,其实Delphi发展到现在10.3,一直在不断的进步,Delphi不但巩固了Windows本机软件开发领域的王者地位,更扩展到了安卓、IOS、MAC、Linux跨平台开发领域,成为APP...
  • 今天说说安卓混合开发。  曾经有一个话题是web终会一统app,然后我们看到随着时间的推移。web越来越强大(H5啊,js各种框架啊),但同时原生app也在不断发展。  或许在将来还会再有这种话题论战,但目前,混合...
  • 像SpringMVC一样在Android上做Web开发 一部分Android开发者看到这个标题时可能有点疑惑,SpringMVC不是用来做JavaWeb开发的吗?难道被移植到Android上来了?答案是否定的,因为SpringMVC是基于Servlet的,在Android...
  • 安卓web app开发

    2017-04-03 18:20:42
    安卓移动应用的混合开发,现在很多APP都开始着手实现了,比如淘宝的页面就是,但是吐槽下,确实又卡又慢,当然你可以反击我手机性能差... 说说优点吧: 1 快速上手支持快速迭代更新(快速上手:你可以不懂Android,IOS就...
  • 全书共分12章 主要以范例集的方式来讲述Android开发应用 详细介绍了Android的移动查询系统 数据库客户端 网络游戏开发 动态壁纸游戏 移动管理系统 导航与地图开发(LBS) Web端和移动客户端开发 单机项目移动开发 ...
  • 目前平台已经支持安卓设备的应用开发;以及java学习。同时还将在后续持续支持开发H5网页、小程序、脚本、PC程序、手机游戏等等。 平台所有语言均采用原生语言+中文扩展支持。因此VCN不是纯粹的中文编程工具或者新的...
  • 从本质上来说,Android有两类应用程序:一种是客户端...Android为了简化Web应用程序的开发,提供了下面的支持: 1.支持viewport性能,运行你根据屏幕的大小来调整应用程序的大小。 2.CSS和javaScript的特征,允许...
  • 这是一门快速入门Android开发课程,顾名思义是让大家能快速入门Android开发。 学完能让你学会如下知识点: Android的发展历程 搭建Java开发环境 搭建Android开发环境 ...
  • android应用开发入门

    2011-11-17 23:11:56
    1.Android是什么?  Android 是Google开发的基于Linux平台的...谷歌与开放手机联盟合作开发Android,这个联盟由包括中国移动、摩托罗拉、高通、宏达和 T-Mobile 在内的 30 多家技术和无线应用的领军企业组成。 A
  • 用Flutter开发Web应用

    2019-05-13 16:57:41
    Flutter作为一个可移植的UI框架,已经支持现代Web应用开发了!我们很开心已经发布了SDK预览版,这样你可以在Web浏览器里直接运行你的Flutter UI代码。 原文链接:Flutter Web - 目标全平台开发的Flutter再下一城!-...
  • Android 是Google开发的基于Linux平台的开源手机操作系统。它包括操作系统、用户界面和应用程序—— 移动电话工作所需的全部软件,而且不存在任何以往阻碍移动产业创新的专有权障碍。 Android以Java为编程语言,使...
1 2 3 4 5 ... 20
收藏数 110,660
精华内容 44,264
关键字:

安卓web应用开发教程