国家开放大学Andro
常用的网络权限包括什么?
答案是:常用的网络权限包括什么?
简述Service原理
答案是:使用JNI调用Java类中方法getTest()。r "" X exte n C JNIE PORT jint JNICALLddrrMd(Java_com_example_n k emo_JniCall_testCallConst ucto etho JNIEn ) v *env, jobject instance {//获取jclass d("dd")jclass j_class = env->Fin Class com/example/n k emo/test ;//找到构造方法d r( d )jmetho ID public A ea int wi th, int heightd rrd Md(jmetho ID j_const ucto _methoi = env->Get etho ID j_class,"" "()") , II V ;//初始化Java类构造方法 r( d )public A ea int wi th, int height r ( rrdjobject j_A ea_obj = env->NewObject j_class, j_const ucto _methoi , 0)2, 1 ;//找到()getTestd rd Md( ""jmetho ID j_getA ea_methoi = env->Get etho ID j_class, getTest ,"()")I ;//调用Java中的 ()getTest r Md(r d)jint j_ test = env->CallInt etho j_A ea_obj, j_getTest_methoi ;rr etu n j_test;}
2
答案是:其余还有一些技术细节方面:NFC相较于RFID技术,具有距离近、带宽高、能耗低等一些特点。详细内容:1.NFC只是限于13.56MHz的频段!而RFID的频段有低频(125KHz到135KHz),高频(13.56MHz)和超高频(860MHz到960MHz之间。2.工作有效距离:NFC(小于10cm,所以具有很高的安全性),RFID距离从几米到几十米都有!持NFC,而RFID标准较多,统一较为复杂,只能在特殊行业有特殊需求下,采用相应的技术标准!3.因为同样工作于13.56MHz,NFC与现有非接触智能卡技术兼容,所以很多的厂商和相关团体都支领域内发挥着巨大的作用。4.应用:RFID更多的被应用在生产、物流、跟踪、资产管理上,而NFC则在门禁、公交、手机支付等转自:http://www.cnblogs.com/zouhao/archive/2013/04/17/3025542.html基于NFC的识别和通信可分为三个步骤:1、Android通过设备上NFC的相关硬件和驱动,发现周边的NFC设备或标志,并读取出其中包含的消息和数据;2、Android会发出请求事件,调用适合的界面组件来处理NFC消息。3、在寻找到合适的界面组件后,Android会构造并调用该界面组件,但它与NFC标志进行通信。声明Android Manifest.xml 的元素:在你能访问一个设备的NFC 硬件和正确的处理 NFC 的 Intent 之前,需要在AndroidManifest.xml 中先声明下面的项1、允许元素来访问 NFC 硬件:2、最小SDK 版本需要设置正确,API level 9 只包含有限的 tag 支持 , 包括:. 通过ACTION_TAG_DISCOVERED来发布Tag 信息. 只有通过EXTRA_NDEF_MESSAGES扩展来访问 NDEF 消息. 其他的 tag 属性和 I/O 操作都不支持所以你可能想要用 API level 10 来实现对 tag 的广泛的读写支持。 3、 uses-feature 元素定义:你的程序可以再android 市场里显示有 NFC 硬件。4、NFC intent-filter 告诉android 系统你的 activity 能处理 NFC 数据,可以定义1 个或多个 intent filter :上边 3 个 intent filters 有优先级,NDEF_DISCOVERED的优先级最高,TAG_DISCOVERED的优先级最低。Tag 发布系统:当android 设备扫描到一个 NFC tag ,通用的行为是自动找最合适的 Activity 会处理这个 tag Intent 而不需要用户来选择哪个Activity 来处理。因为设备扫描NFC tags 是在很短的范围和时间,如果让用户选择的话,那就有可能需要移动设备,这样将会打断这个扫描过程。你应该开发你只处理需要处理的tags 的 Activity ,以防止让用户选择使用哪个 Activity来处理的情况。Android 提供两个系统来帮助你正确的识别一个NFC tag 是否是你的 Activity 想要处理的:Intent 发布系统和前台Activity 发布系统。Intent 发布系统检查所有 Activities 的 intent filters ,找出那些定义了可以处理此tag 的 Activity ,如果有多个 Activity 都配置了处理同一个tag Intent ,那么将使用 Activity 选择器来让用户选择使用哪个 Activity 。用户选择之后,将使用选择的 Activity 来处理此Intent 。前台发布系统允许一个 Activity 覆盖掉Intent 发布系统而首先处理此tag Intent ,这要求你将要处理 Tag Intent 的 Activity 运行在前台,这样当一个 NFC tag 被扫描到,系统先检测前台的 Activity 是否支持处理此Intent ,如果支持,即将此Intent 传给此Activity,如果不支持,则转到 Intent 发布系统。NFC数据交换格式:NdefMessage 是交换NFC数据最常用的方式,当然,你仍然可以定义你自己的non-NDEF 数据。NfcAdapter 用来监测设备对NFC的支持。前台调度系统允许一个活动拦截一个意图并允许这个活动比其他处理相同意图的活动拥有更高的优先级。因此,在实际开发中,开发者需要尽可能精确地配置Intent-Filter,避免捕获无法处理的NFC事件而影响用户体验;或者采取热拔插Intent-Filter的策略,将用户选择处理组件的流程放在识别之前,从而实现精准选择NFC处理组件。相关示例如下: // 构造待触发的IntentPendingIntent pendingIntent = PendingIntent.getActivity(this,0,new Intent(this,getClass()).addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP),0);//构造Intent-Filter 来处理NFC消息IntentFilter ndef = new IntentFilter(NfcAdapter.ACTION_NDEF_DISCOVERED);ndef.addDataType("text/plain");intentFilterArray = new IntentFilter[]{ndef};techListsArray = new String[][]{ new String[] { NfcF.class.getNane()}};......// 当界面组件位于前台时,监听相关NFC事件@Overridepublic void onResume() {super.onResume(); //NfcAdapter.getDefaultAdapter(this).enableForegroundDispatch(this,pendingIntent,intentFiltersArray,techListsArray);NfcAdapter.getDefaultAdapter(this).enableForegroundDispatch(this, mNdefMessage);}// 当界面组件位于后台状态时,停止监听@Overridepublic void onPause() {super.onPause();NfcAdapter.getDefaultAdapter(this).disableForegroundDispatch(this);}最后,在寻找到合适的界面组件后,Android会构造并调用该界面组件,但它与NFC标志进行通信。组件与NFC标志交换的数据是通过android.nfc.NdefMessage对象来封装的。每一个NdefMessage中,包含了1个或多个android.nfc.NdefRecord对象。NdefRecord是表示NDEF格式数据的基本单元,它包含类型信息、唯一的标志信息以及需要传输的数据。界面组件可以从NFC标志中读取或写入NdefMessage对象
Android系统提供了两种方式来识别一个NFC Tag是否为Activity需要处理的内容,对这两种进行讨论。
答案是:1.Android系统提供了两种方式来识别一个NFC Tag是否为Activity需要处理的内容,对这两种进行讨论。NFC是Near Field Communication缩写,即近距离无线通讯技术。由飞利浦和索尼公司共同开发的NFC是一种非接触式识别和互联技术,可以在移动设备、消费类电子产品、PC和智能控件工具间进行近距离无线通信。NFC提供了一种简单、触控式的解决方案,可以让消费者简单直观地交换信息、访问内容与服务。目前,NFC论坛在全球拥有70多个成员,包括:万事达卡国际组织、松下电子工业有限公司、微软公司、摩托罗拉公司、NEC公司、瑞萨科技公司、三星公司、德州仪器制造公司和Visa国际组织。NFC是在RFID的基础上发展而来,NFC从本质上与RFID没有太大区别,都是基于地理位置相近的两个物体之间的信号传输。Android从2.3版本的SDK开始支持基于NFC通信。RFID:许多人对于RFID的感性认识都来自一则IBM的广告:一个在超市购物的青年一边逛一边往风衣里塞商品,到收银台后直接领取账单,而不需要掏钱付款。这则广告非常形象地给人们展示了RFID技术在日常生活中的应用。RFID的三大问题:1.价格:与传统二维码相比,在未能大规模应用时,没有价格优势,但其有可重复使用、减少人力、减少错误、提高客户满意度能隐性优势;2.安全:一家名为IOActive的公司展示了一款RFID克隆器,这款设备可以通过复制信用卡来窃取密码;业内某安全专家破解了一张英国发行的、利用RFID来存储个人信息的新型生物科技护照。这些让人们对于RFID的安全性产生了质疑。但RFID大多应用在一些普通信息存储方面,而且RFID标签非常小,上面不能存储太多的数据。而标签上的信息并不总是敏感信息。花费太多的时间和费用去保证货物RFID标签信息的安全性,对于货主来说毫无意义。3.标准:我国坚持推出自主知识产权的RFID标准,另一方面,国内RFID产业的迅速发展却迟迟没有可以依照的中国标准,RFID的标准问题的处境显得十分尴尬;下载地址:RFID与NFC的区别:但NFC与RFID还是有区别的,NFC技术增加了点对点通信功能,可以快速建立蓝牙设备之间的P2P(点对点)无线通信,NFC设备彼此寻找对方并建立通信连接。P2P通信的双方设备是对等的,而RFID通信的双方设备是主从关系。
在Android中,如果要实现配置信息的保存,需要使用SharedPreferences存储技术。( ) 判断题 (1 分) 1分 A.对 B.错
答案是:A
在Android 6.0之后,读写文件权限属于危险权限,需要运行动态申请。( ) 判断题 (1 分) 1分 A.对 B.错
答案是:A
NDK是使用C/C++语言开发的。( ) 回答错误 判断题 (1 分) 0分 A.对 B.错
答案是:B
通过JNI可以访问Java的静态变量。( ) 回答错误 判断题 (1 分) 0分 A.对 B.错
答案是:B
在/data/data/包名/cache 目录下可以 cache 软件的缓存数据,当清除缓存时数据就会删除。( ) 判断题 (1 分) 1分 A.对 B.错
答案是:A
SharedPreferences所有的信息都是按照key-value的形式保存的。( ) 判断题 (1 分) 1分 A.对 B.错
答案是:A
FileProvider类是一个特殊的Content Provider。( ) 判断题 (1 分) 1分 A.对 B.错
答案是:A
PULL解析也是一种基于事件流驱动的XML解析方式。( ) 判断题 (1 分) 1分 A.对 B.错
答案是:A
Paint主要的绘图工具类。( ) 判断题 (1 分) 1分 A.对 B.错
答案是:A
onStartCommand()方法在每次启动Service时都会被调用。( ) 判断题 (1 分) 1分 A.对 B.错
答案是:A
onStartCommand()方法在Service的一个完整生命周期内可能会被调用多次。( ) 判断题 (1 分) 1分 A.对 B.错
答案是:A
File适用于存储文本类型数据或者二进制数据。( ) 判断题 (1 分) 1分 A.对 B.错
答案是:A
Canvas是一个操作绘图的平台。( ) 判断题 (1 分) 1分 A.对 B.错
答案是:A
Bitmap可以理解为一种为存储图形像素而设计的数据结构。( ) 判断题 (1 分) 1分 A.对 B.错
答案是:A
Bitmap包含的图片可以来自文件,也可以由程序创建。( ) 判断题 (1 分) 1分 A.对 B.错
答案是:A
Android提供的用于媒体播放的类,可播放音频和视频,但是仅仅限于MP3和MP4等有限的格式。( ) 判断题 (1 分) 1分 A.对 B.错
答案是:A
Android对.png格式的位图支持最好。( ) 回答错误 判断题 (1 分) 0分 A.对 B.错
答案是:A
Android 中数据只能存储到 sd 卡上。( ) 判断题 (1 分) 1分 A.对 B.错
答案是:B
ContentProvider在实际的开发中不需要注册,可以直接使用。( ) 判断题 (1 分) 1分 A.对 B.错
答案是:B
Android 中创建内容提供者要继承 ContentObserver。( ) 回答错误 判断题 (1 分) 0分 A.对 B.错
答案是:B
Android 中使用 openFileOutput(String name,int mode)方法获取到文件输出流时, 第二个参数 mode 常用模式有 4 种。( ) 回答错误 判断题 (1 分) 0分 A.对 B.错
答案是:A
较长时间的定时任务可以使用Alarm来实现。( ) 判断题 (1 分) 1分 A.对 B.错
答案是:B
Service可以使用ServiceConnection实现与Activity的交互。( ) 判断题 (1 分) 1分 A.对 B.错
答案是:B
在Service中可以直接进行耗时操作。( ) 判断题 (1 分) 1分 A.对 B.错
答案是:B
Glide可以设置缓存模式。( ) 判断题 (1 分) 1分 A.对 B.错
答案是:B
Android平台的C/C++类库主要集中在( )。 单选题 (1 分) 1分 A. Application层 B. Framwork层 C. Library层 D. Linux Kernel层
答案是:A
AsyncTask中的( )方法在子线程中执行。 单选题 (1 分) 1分 A. onProgressUpdate() B. onPreExecute() C. doInBackground()
答案是:D
下列方法中,( )执行时释放了锁。 单选题 (1 分) 1分 A. wait() B. sleep() C. notify() D. clone
答案是:A
自定义一个数据适配器 MyAdatper,需要让它继承的类是( ) 单选题 (1 分) 1分 A.DefaultAdapter B.ParentAdapter C.BaseAdapter D.BasicAdapte
答案是:C
对于Android开发来说,( )是网络开发中使用最多、最重要的网络通信方式。 单选题 (1 分) 1分 A.HTTP B.FTP C.TCP/IP D.FDDI
答案是:A
在下列选项中,用于查询数据的方法是( ) 单选题 (1 分) 1分 A.update B.insert C.query D.delete
答案是:C
在下列选项中,关于内容提供者的说法错误的是( ) 单选题 (1 分) 1分 A.ContentProvider 是一个抽象类,只有继承后才能使用。 B.内容提供者只有在 AndroidManifest.xml 文件中注册后
答案是:B
可以在 Activity 中得到 ContentResolver 实例对象的方法是( ) 单选题 (1 分) 1分 A.new ContentResolver() B.getContentResolver() C.ne
答案是:B
利用内容解析者查询短信数据时 uri 怎么写( ) 单选题 (1 分) 1分 A.Uri uri = Uri.parse(“content://sms”) B.Uri uri = Uri.parse(“content://
答案是:A
关于 Android 中消息机制说法正确的是( ) 单选题 (1 分) 1分 A.Handler 只能用来发送消息。 B.Handler 是用来发送消息和处理消息的。 C.MessageQueue 是用来收集消息并主动
答案是:B
做网络图片查看器的时候,需要把获取的流信息转换为( ) 单选题 (1 分) 1分 A.String B.int C.Bitmap D.Text
答案是:C
以下是 Android 中用于 xml 解析方式的是( ) 单选题 (1 分) 1分 A.SAX B.DOM C.XmlPullParser D.Juint
答案是:C
下列说法错误的是( ) 单选题 (1 分) 1分 A.获取 HttpClient 实例可以直接 new HttpClient()。 B.获取到 HttpClient 实例 client 后,想执行 get 请求,clien
答案是:A
URL(uniform resource locator,统一资源定位符)是互联网标准资源的地址。通过一个URL,能找到( )资源。 单选题 (1 分) 1分 A.一个 B.两个 C.三个 D.四个
答案是:A
URL的一般格式为( ) 单选题 (1 分) 1分 A.<协议>://<端口>:<主机>/<路径> B.<协议>://<路径> :<主机>
答案是:C
HTTP是( )。 单选题 (1 分) 1分 A.不保存状态的协议 B.保存状态的协议 C.状态不确定的协议 D.以上都不对
答案是:A
HTTP是万维网实现数据通信的基石。它基于( )来传递数据。 单选题 (1 分) 1分 A.TCP/IP B.File协议 C.FTP D.mailto协议
答案是:A
Android 中开启事务的方法正确的是( )。 单选题 (1 分) 1分 A.db.startTransaction() B.db.beginTransaction() C.db.endTransaction()
答案是:B
Android AsyncTask 异步任务中,哪个方法是运行在主线程中( ) 单选题 (1 分) 1分 A.doInBackground() B.onPreExecute() C.onPostExecute()
答案是:A
自定义View时必须实现的方法是( )。 单选题 (1 分) 1分 A. onMeasure() B. onDraw() C. onLayout() D. equals()
答案是:A
使用MediaPlayer开始播放音视频的方法是( )。 单选题 (1 分) 1分 A. prepare() B. start() C. release() D. setDataSource()
答案是:A
自定义Service时,必须实现的方法是( )。 单选题 (1 分) 1分 A. onCreate() B. onStartCommand() C. onBind() D. onDestro
答案是:A
使用SQLite读取数据内容时,用到的核心类是( )。 单选题 (1 分) 1分 A. ContentValues B. Cursor C. SQLiteOpenHelper D. SQLit
答案是:A
SharedPreference存储数据,最后提交数据时,推荐使用( )。 单选题 (1 分) 1分 A. commit() B. apply() C. put() D. push
答案是:A
在AndroidManifest.xml中注册广播接收器BootBroadcastReceiver。
答案是:在AndroidManifest.xml中注册广播接收器BootBroadcastReceiver。
完成以下JSON的解析,完成主体代码即可,解析方法及库不限。
答案是:public class JSONObjectActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_jsonobject);new Thread(new Runnable() {@Overridepublic void run() {// 模拟进行网络请求String jsonResult = FileUtils.readXML();parseJson(jsonResult);} }).start();}private void parseJson(String jsonData) { Person person = new Person(); try { JSONObject jsonObject = new JSONObject(jsonData); // 解析persons数组JSONArray phones = jsonObject.getJSONArray("phones");person.phones = new ArrayList<>(); for (int i = 0; i < phones.length(); i++) { person.phones.add((String) phones.get(i));}// 解析普通属性person.name = jsonObject.getString("name");person.age = jsonObject.getInt("age");// 解析addressJSONObjectaddressJson=jsonObject.getJSONObject("address");Address address = new Address();address.country = addressJson.getString("country");address.province = addressJson.getString("province");person.address = address; System.out.println(person.toString());} catch (JSONException e) { e.printStackTrace();} } class Person {Listphones;String name;int age;Address address;@Overridepublic Stsring toString() {return "Person{"+"phones ="+ phones +", name=''' + name + '\" +", age="+ age +", address="+ address +'}';}}class Address { String country;String province; @Overridepublic String toString() {return "Address{"+"country=''' + country + '\" +", province=''' + province + '\" +'}';}}
目前为: 1/1 页  首页   上页 下页 尾页