精华内容
下载资源
问答
  • HTML5移动应用开发入门经典

    千次下载 热门讨论 2015-10-24 11:09:04
    HTML5移动应用开发入门经典。我也是从别人那里下载的,分享下
  • 《Android移动应用开发》 复习题(一)

    千次阅读 多人点赞 2019-12-08 15:31:12
    《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移动应用开发》 复习题(二)

    千次阅读 多人点赞 2019-12-08 15:27:29
    《Android移动应用开发》 复习题(二) 一、填空 1、Android的系统架构采用了分层架构的思想,从上层到底层共包括四层,分别是应用层、应用框架层、系统运行库层以及Linux内核层。 2、Android的四大组件分别是...

    Android移动应用开发》

    复习题(

    一、填空

    1、Android的系统架构采用了分层架构的思想,从上层到底层共包括四层,分别是应用层、          应用框架层               系统运行库层       以及Linux内核层。

    2、Android的四大组件分别是          Activity           Service        

           BroadCastRecevicer       和 ContentProvider。

    3、如果界面的某个控件的id设置为btnLogin,那么调用方法findViewById()时,引用该控件的参数应为          R.id.btnLogin     

    4、Toast可以通过makeText( )方法创建Toast对象并设置相关属性,并调用

        Show()  方法显示提示。

    5、Intent启动Activity,分为     显式启动            隐式启动       两种。

    6、    SharedPreferences      是Android系统提供的一种轻量级数据保存方式,它的数据以键值对(Key-Value)的形式存放在    xml    文件中。

    7、        SQLite    数据库是Android系统内置的一款轻量级开源嵌入式数据库。

    8、       AIDL    是一种接口定义语言,用于约束两个进程间的通讯规则,供编译器生成代码,实现Android设备上的两个进程间通信(IPC)。

    9、    SharedPreferences   是Android系统提供的一种轻量级数据保存方式,它的数据以键值对(Key-Value)的形式存放在XML文件中,直到应用程序被删除。

    10、通常Android应用程序之间的数据不能够直接访问,为了实现不同应用程序之间的数据交互,Android提供了一个接口      ContentProvider     ,它是不同应用程序之间进行数据交互的标准API,一个应用程序把自己的数据通过                      暴露给其他应用程序,而其他程序通过        ContentResolver      来获取暴露的数据

    11、当一个Fragment被创建的时候,它会经历以下状态:     onAttach()   →onCreate()→      onCreateView()       →onActivityCreated()。

    12、Java里面线程池的顶级接口是Executor,但是严格意义上讲Executor并不是一个线程池,而只是一个执行线程的工具。真正的线程池接口是     ExecutorService     

    13、     Executors   类为创建ExecutorService提供了便捷的工厂方法。要配置一个线程池是比较复杂的,尤其是对于线程池的原理不是很清楚的情况下,很有可能配置的线程池不是较优的,因此在       Executors         类里面提供了一些静态工厂,生成一些常用的线程池。

    14、     Future  模型是将异步请求和代理模式联合的模型产物,类似商品订单模型。

    15、volatile修饰符告诉JVM,    访问该变量的线程必须总是使自己对该变量的私有副本与内存中的主副本保持一致     

    16、当两个系统需要进行数据交换的时候,如果传递的是经过序列化的对象,效率是非常低的,如果传递的是存储大量对象的数组的时候效率就更不敢想象了,这时如果通过将对象或数据转换成     JSON    字符串进行传递,效率就会提高很多。

    17、      Maven   是一个项目管理工具,它包含了一个项目对象模型(Project Object Model)、一组标准集合、一个项目生命周期(Project Lifecycle)、一个依赖管理系统(Dependency Management System)和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。

    18、      Gradle     是一种依赖管理工具,基于Groovy语言,面向Java应用为主,它抛弃了基于XML的各种繁琐配置,取而代之的是一种基于Groovy的内部领域特定(DSL)语言。

    19、Maven 的所有构件均通过坐标进行组织和管理。Maven的坐标通过5个元素进行定义,其中    groupId          artifactId    、version是必须的,packaging是可选的(默认为jar),classifier 是不能直接定义的。

    20、一个构件只有在本地仓库中之后,才能由其他Maven项目使用,那么构件如何进入到本地仓库中呢?最常见的是依赖Maven从      远程仓库      下载到本地仓库中。

     

     

    二、选择题

    1、下列方法中,用于发送一条有序广播的方法是(   B   )。

    A. startBroadcastReceiver( )                  B. sendOrderedBroadcast( )

    C. sendBroadcast( )                         D. sendReceiver( )

     

    2、在清单文件中,注册广播时使用的节点是( C  )。

    1. <activity>      B. <broadcast>      C. <receiver>     D. <broadcastreceiver>

     

    3、下列选项中,属于绑定服务特点的是(  ABC  )。(多选题)

    1. 以bindService()方法开启                B. 调用者关闭后服务关闭

    C. 必须实现ServiceConnection( )            D. 使用stopService()方法关闭服务

     

    4、关于Service生命周期的onCreate()和onStart()方法,正确的的是(  BD  )。

    (多选题)

    A. 如果Service已经启动,将先后调用onCreate()和onStart()方法。

    B. 当第一次启动的时候,先后调用onCreate()和onStart()方法。

    C. 当第一次启动的时候只会调用onCreate()方法。

    D. 如果Service已经启动,只会执行onStart()方法,不再执行onCreate()方法。

     

    5、下列选项中,不属于Handler机制中的的关键对象是(  A    )。

    1. Content        B. Handler        C. MessageQueue        D. Looper

     

    6、下列关于Activity的描述中,错误的是(   D  )。

    A.  一个Activity可以表示一个可视化的用户界面。 

    B.  Activity就像一个界面管理员,用户在界面上的操作是通过Activity来管理的。

    C.  Activity有4种启动模式。

    D.  Activity通常用于开启一个广播事件。

     

    7、Android中有许多控件,这些控件都继承自(  D  )类。

    A. Control            B. Window         C. TextView            D. View

     

    8、Android中有一个服务用来管理通知,它是(  B  )。

    A. Service      B. NotificationManager      C. Notice       D. DialogueBuilder

     

    9、以下哪一个控件是用来显示图片?(  A    )

    A. ImageView          B. TextView         C. EditText            D. Button

     

    10、以下哪个控件可以用来显示进度?(  B     )

    A. EditText          B. ProgressBar         C. TextView            D. Button

     

    11、如果要实现用户单击后触发一定的处理,以下哪一个控件最合适?(   D    )

    A. ImageView          B. TextView         C. EditText            D. Button

     

    12、以下哪个属性用来表示引用图片的资源id(   D   )。

    A. text             B. img            C. id             D. src

     

    13、如果需要创建一个字符串资源,需要将字符串放在res/values文件夹下的哪个文件中?(   B  )

    A.value.xml         B.strings.xml         C.dimens.xml        D.styles.xml

     

    14、ListView是最常用的(  C     )类型控件。

    A.按钮        B.图片         C.列表       D.下拉列表

     

    15、Android中有许多布局,它们均是用来容纳子控件和子布局的,这些布局均继承自(  B )。

    A.Layout         B.ViewGroup           C.Container         D.Line Layout

     

    16、startActivityForResult方法接受两个参数,第1个是Intent对象,第2个是(  C    )。

    A.resultCode           B.action             C.请求码          D.data

     

    17、Android中下列属于Intent的作用的是(C   )。

    A.实现应用程序间的数据共享。

    B.可以保持应用在后台运行,而不会因为切换页面而消失。

    C.可以实现界面间的切换,可以保护动作和动作数据,连接四大控件的纽带。

    D.处理一个应用程序整体性的工作。

     

    18、继承BroadcastReceiver会重写(  A  )方法。

    1. onReceive( )         B. onUpdate( )         C. onCreate( )          D. onStart( )

     

    19、如果需要捕捉某个控件的事件,需要为该控件创建(  C  )。

    1. 属性              B. 方法             C. 监听器            D. 事件

     

    20、一个Android应用程序默认会包含(   1  )个Activity。

    A. 1                 B. 5                 C. 10                D. 2

     

    21、下列方法中,Activity从启动到关闭不会执行的是(   D    )。

    A. onCreate( )         B. onStart( )         C. onResume( )          D. onRestart( )

     

    22、下列控件中,不能用Intent启动的是(   D  )。

    A. Activity           B. 启动服务          C. 广播          D. 内容提供者

     

    23、如果要将数据中的私有数据分享给其他应用程序,可以使用的是(     C   )。

    A. 文件存储       B. SharedPreferences       C. ContentProvider       D. SQLite

     

    24、以下哪个方法能够实现数据库的数据插入?(    C   )

    A. onCreate          B. onUpgrade          C. execSQL          D. rawQuery

     

     

    展开全文
  • 联想智能农业移动应用开发系统用户手册

    千次阅读 多人点赞 2016-10-24 22:26:51
    1.1 系统概述 联想智能农业移动应用开发系统是一套模拟智能农业场景的应用研发测试平台。可广泛运用于移动APP开发、嵌入式设备开发、软件测试、用户体验测试(需配选件)等。不仅可以满足开发企业研发新产品搭建...

    1. 系统介绍
    1.1 系统概述 联想智能农业移动应用开发系统是一套模拟智能农业场景的应用研发测试平台。可广泛运用于移动APP开发、嵌入式设备开发、软件测试、用户体验测试(需配选件)等。不仅可以满足开发企业研发新产品搭建模拟环境的需求,也可以作为各级学校移动互联网、软件、物联网、设计等专业或课程的教学和实训平台。 该系统可以模拟农业大棚中各种常用传感器和智能网关,用户可以开发APP读取这些数据;同时,同时可以通过APP设置各种农业指标的正常范围,如空气温湿度、土壤温湿度、二氧化碳浓度、光照强度等,同时可以或直接利用APP打开相应的控制设备,如报警、喷水、打开LED等,从而实现对智能农业大棚的高效管理。 本系统采用Android操作系统,基于ARM Coretex-A9开发平台,配备了4核处理器,能提供稳定的性能和良好的兼容性。同时,本系统具有强大的扩展和升级能力。系统配备可插拔的WIFI、GPRS、3G和蓝牙模块,同时提供了标准USB、COM、VGA、HDMI、SIM卡、JTAG和通用GPIO等接口。通过增加选配件,该系统还可以模拟智能环境监测等其他应用场景。配备眼动仪组件(可选)后,可以升级为眼动测试系统,更能满足用户进行移动APP用户界面和用户体验测试的需求。
    1.2 系统架构和连接 这个系统由三部分组成:智能农业沙盘,智能数据网关和移动互联开发平台,系统连接方式如下:

        用户开发的APP安装在移动互联开发平台上,并通过WIFI或网线与智能数据网关相连和通讯,可以读取来自智能数据网关的传感器数据,并发送控制命令给智能数据网关。  智能数据网关已预装有一个服务端APP(用户也可自行开发),一端与移动应用开发平台APP通过局域网相连(建议采用WIFI),发送传感器数据给移动应用开发平台,并接收来自移动应用开发平台的控制命令;另一端用随机配备的RS232串口线(COM线)与智能农业沙盘相连,读取来自智能农业沙盘的传感器数据,并转发移动应用开发平台控制命令给智 WIFI COM线  移动互联开发平台  智能数据网关  智能农业沙盘 
    

    联想智能农业移动应用开发系统用户手册
    智能农业沙盘。 智能农业沙盘一端通过COM口与智能数据网关相连,一方面上传读取到的传感器数据,另一方面接收来自智能数据网关的控制命令,控制各报警设备和控制节点
    初始化串口读取和控制API

    public void initSerial(String serialPortName,int baudRate)

    第一个参数是串口设备名称 第二个是参数指定波特率
    函数作用:初始化串口
    2、public void devHands
    与串口握手
    3、public void RequestDeviceData(byte[] sensorAddress)
    函数作用:获取传感器的数据
    参数含义:第一个参数
    参数含义:指定传感器的地址
    4. public void controlAct(byte[] relayAddress, byte[] controlAddress, byte[] openOrCloseAddress)
    5. 函数作用:控制继电器连接设备的打开或关闭 参数含义:第一个参数指定继电器的地址;第二个参数指定继电器控制的连接设备;第三个参数指定打开或关闭继电器连接设备 每个传感器节点都是独立工作的,并且每个传感器还有一个4位的LED现场显示器,传感器的数值可以现场实时显示。每个传感器节点通过Zigbee无线网络跟封闭在箱体底座里边的协调器进行数据交互,协调器再把相关数据通过RS232串口上传到智能数据网关。 智慧农业沙盘采用RS232接口与智能数据网关相连,一方面发送传感器数据给智能数据网关,另一方面接收智能数据网关转发的控制命令,实现对各控制节点的控制和操作。
    转载请注明出处!

    展开全文
  • 自从乐视小米的智能电视火了以后,越来越多的移动应用开发者投身智能电视应用开发。那么智能电视应用开发与移动应用开发有何不同呢,设计规范又什么要注意呢,请看本文详细内容。

    自从乐视小米的智能电视火了以后,越来越多的移动应用开发者投身智能电视应用开发。其实智能电视开发与移动应用开发既有相同点,又有很多不同点。

    大部分移动开发者基于android与IOS两大操作系统,而在智能电视方面基本上android一家独大,加上apple迟迟不推出苹果电视,所以国内基本没有IOS方面智能电视开发者。所以本文主要比较android系统下的智能电视开发与移动开发的异同。

    智能电视有几个特点。虽然电视物理尺寸较多,但是分辨率比较集中,目前主要有1920x1080,1280x720,1366x768,以前两种为主,这点不同于手机,手机的分辨率则多很多。电视的主要操控还是普通的遥控器,而手机目前主要的操作方式是触摸。操控方式不同,设计准则就不一样。电视通过遥控器操作,那么要考虑焦点移动,要考虑应用对遥控器的响应要灵敏,而手机应用主要考虑触摸的灵敏性。

    用户一般离电视比较远,所以字体要足够大,跟手机不一样。电视一般都是使用有线网络或者无线网络,所以看视频的时候不需要考虑流量问题,而手机不一样,用户在看大流量的数据的时候,一般应该提醒用户是否在2G/3G网络下是否继续下一步,否则用户要抱怨了,说不定你的应用就要打入冷宫了。电视一般都是永远续电的,所以应用不需要考虑电量够不够的问题,而手机则要考虑,所以很多应用会显示电池电量。手机在横屏和竖屏之间可以自由切换,而电视不可能做到这一点,所以电视应用永远都是在横屏状态。

    由于历史原因,电视制作商必须在正常屏幕尺寸的外侧预留空白边,这些空白区域就是过扫描。应用程序不能在过扫描区域显示,所以建议应用提供10%的空白边。而手机不存在这个问题。

    由于电视屏幕较大,加上遥控器操作,所以一个应用启动后,可以通过遥控器的按键启动另一个应用,所以应用开发者需要注意。例如,应用启动后,按遥控器的设置按钮,可以更换系统语言,应用如何自动跟随系统变化,开发者需要思考。

    同样由于电视屏幕尺寸较大,所以运营人员和产品人员希望提供高保真的图片,增加产品的美度和卖点,但是对开发者是一个挑战,一个1920x1080的24位图片渲染时需要消耗8M的系统内存。如果有大量的图片,那么对应用性能有严重影响。这种情况下在产品和性能方面做平衡,不能因为其他原因影响了应用的用户体验。性能也是移动应用需要考虑的核心因素。性能差的应用,没有用户会买帐。

    智能电视应用和移动应用的设计目标是一致的,都是给用户提供方便好用有良好用户体验的好产品。

    ----------------------------------------

    微信号tvplayer,互联网电视行业从业者,热爱生活,喜欢八卦,关注互联网视频和物联网。

    展开全文
  • 8个最佳的JavaScript移动应用开发框架
  • 2017年十大移动应用开发的测试工具

    千次阅读 2017-05-14 11:18:14
    2017年十大移动应用开发的测试工具 版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 自动化测试工具介绍自动化测试工具基本上是移动应用(Android和iOS)程序开发测试的必备工具,正确开展自动测试...
  • 《HTML5移动应用开发入门经典》将这两者巧妙结合起来,详细讲解了如何利用HTML5进行移动应用开发。 HTML5移动应用开发入门经典总共分为24章,以示例的方式对如何使用HTML5及相关技术进行移动应用开发做了全面而细致...
  • 视频主题:Symbian移动应用开发前景分析、典型应用 视频简介:本专题主要结合移动计算、移动互联网、应用程序商店等炙手可热的技术和应用领域,分析介绍Symbian移动应用开发的历史演进,以及未来QT作为symbian唯一...
  • 10个易于开发的移动应用开发框架

    千次阅读 2012-01-17 13:43:55
    由于iPhone和谷歌Android推出移动应用开发正在迅速增长。有无数的移动Web应用程序在互联网上公布,这些应用程序在发布之前都需要经过大量的工作和很多工程师辛勤的劳动,开发移动应用并不是一件容易的事情,需要额外...
  • 所有这些应用程序,如果专业构建,应遵循类似的移动应用程序开发过程。在BHW,我们已经构建了350多个网络和移动应用程序,在本文中,我将概述我们遵循的战略,设计和开发流程。 每个应用程序都不同,我们的方法也在...
  • 移动应用发展现状 本文首次出现在... 当前的工具为应用程序开发人员提供了使用各种技术(例如Java,Open C,Python,Flash Lite,XHTML / CSS,JavaScript和Mobile Ajax)的选项,以实现功能强大的移动应用程序。 ...
  • 克服移动应用开发的挑战

    千次阅读 2014-08-18 16:41:45
    克服移动应用开发的挑战 AWS工具帮你构建并优化云上的跨平台的移动应用 这是一个蓄势待发的激情之夏。在今年六月于旧金山举办的Pop-up Loft大会以及七月于纽约举办的AWS峰会上,我们与数千家初创企业交换了意见。...
  • 移动应用程序的开发作为现在...另外一个可能想不通就是HTML5在移动应用开发中发挥的作用。本文或者能为您解决这两个问题带来一个新的思路。  一个移动应用程序,可以通过REST传输JSON或者通过SOAP传输XML,来实现数据
  • 如果仅仅只是掌握了正确的移动应用开发策略并不能保证移动应用的成功,你需要多了解最新的移动应用开发趋势。那么有哪些方面需要了解和关注的呢? 本文将详细讲解需要关注的一些技术动态,仅供我们参考未来的移动...
  • 《Android移动应用开发从入门到精通》涵盖了Android开发从概念、技术到市场推广应用的全部话题,内容包括:Android概览、Android应用程序设计精髓、Android用户界面设计精髓、常用AndroidAPI、更多Android应用程序...
  • 硬件性能的提升,新技术的出现都是影响移动应用发展的重要因素,而最近几年里,这两个方面都有着不...但在刻苦专研技能的同时,也有必要了解一下2015年移动应用开发的发展趋势,从而为自己的努力找到方向。
  • 移动应用开发的路程是艰辛的,欣慰的是一些精心设计的开发工具可以为你在开发道路过程中雪中送炭。我们为大家整理了10款移动应用开发工具,这些工具改变了我们设计移动应用的常规方式。 AppGyver ...
  • http://www.appcan.cn/ 众多理由让您选择AppCan 国内Hybrid混合应用开发的倡导者和领导者!支持跨平台移动应用开发 一次开发多平台适配iOS、Android、Windows Phone
  • 基于安卓的移动应用开发

    千次阅读 2012-02-10 21:39:18
    基于安卓的移动应用开发 2011-12-12 10:21:06来源:作者: 【大中 小】 浏览:1318次 评论:0条 <!-- --> 比赛题目五: 基于安卓的移动应用开发 赛题简介:介绍整个赛题的思路和整体...
  • 2010年,Hybrid App的概念开始被提出来,如今,经过6年多的演变过渡,这种兼具Native App和Web App的优势,又能将彼此的缺陷最小化的移动应用开发模式,成了一种全新的选择。随后,国内知名的Hybrid App开发平台...
  • 另外还介绍了移动应用开发常用的技术与编程语言。 移动商业智能 先说说什么是商业智能。商业智能(Business Intelligence,简称:BI),又称商业智慧或商务智能,指用现代数据仓库技术、线上分析处理...
  • 移动应用开发之相关需求文档详细说明通常我们开始开发移动应用,并不是打开开发环境马上进行代码编写,而是要求我们从整体到局部、从宏观到微观、从设计到实现去开发移动应用。 当一个商业团队开发项目时,需要...
  • 移动应用已经成为日常生活的一个密不可分的部分。而应用程序开发人员面临的最大挑战之一就是...在这里,我们将分享九个值得一试的跨平台移动应用开发工具。这些工具将有助于在短时间内设计出最流行和有用的应用程序。
  • 自从移动平台崛起以来,HTML5移动应用开发迅速变成了热门话题,开发者们被各种开发HTML5移动应用的方法搞得晕头转向,今天请到了金山云基础架构部研发负责人柴春燕给大家分享如何避免HTML5移动应用最容易踩的那些坑...
  • 移动应用开发人员忌浮躁

    千次阅读 2012-02-15 19:45:07
     从应聘的情况可以看出,移动应用开发人员确实是紧缺,随着移动互联网的发展,这已经是不争的事实。不仅中小型或创业型公司招不到人,即使是百度、腾讯、阿里这样的大公司也一样。因此,但凡与iOS、Android沾边的...
  • 11个移动应用开发的HTML5框架和应用

    千次阅读 2013-04-25 09:31:47
    11个移动应用开发的HTML5框架和应用 2011/11/14 | 分类: IT技术, 工具与资源 | 0 条评论 | 来源: SKYTECHGEEK  | 标签: HTML5, 移动应用 分享到:1 在过去的两年里,触屏设备飞速...
  • Python移动应用开发

    千次阅读 2017-11-15 15:01:21
    建立开发环境 1、准备好如下包 ①Android SDK http://tools.android-studio.org/index.php/sdk/ 安装好SDK之后打开sdk manager 更新安装sdk tools 更新完之后再创建一个虚拟机 然后就可以启动虚拟机了 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 38,838
精华内容 15,535
关键字:

移动应用开发