搜档网
当前位置:搜档网 › 第八章 Android 网络编程

第八章 Android 网络编程

第八章 Android 网络编程
第八章 Android 网络编程

第八章 Android 网络编程

Android完全支持J2SE当中的TCP和UDP协议的网络通信API。也就是说完全可以使用ServerSocket、Socket来建立基于TCP/IP协议的网络通信,也可以使用DatagramSocket和DatagramPacket来建立基于UDP协议的网络通信,开发者可以完全根据J2SE当中的网络编程经验来编写Android应用中的网络部分。Android中也支持JDK提供的URL等网络通信API。

8.1 基于Socket的网络通信

Socket是基于TCP/IP协议的网络通信,要了解Socket通信必须先了解两个重要的概念,一个就是IP地址,IP地址对于开发者来说应该是再熟悉不过的,常见的IP 地址是四位的十进制表示方法,实际上IP地址可以是域名的表示形式,也就是平常访问网站所用的地址,它还可以是十六进制的表示形式。第二个概念就是端口,端口是一个整数,它的范围是0—65530,系统常用端口是0--1024所以应用程序通常使用该范围后的端口。端口是计算机与外界通讯交流的出口。

8.1.1 ServerSocket

ServerSocket是JDK提供给开发者用于创建TCP服务器端的类,ServerSocket

的构造方法如下。

有多个网卡多个IP地址的情况。通过指定地址来确定绑定到哪个IP地址上。

ServerSocket中主要的方法如下。

监听方法是用于监听来自客户端的Socket连接,在没有任何连接的情况下该方法处于等待状态。当接收到客户端的连接请求后返回该连接客户端对应的Socket对象。close方法是一个非常重要的方法,当服务器使用完毕后,应该记得使用close方法来关闭ServerSocket对象。

开发ServerSocket的步骤非常简单。可以整理为一下步骤。

1.创建ServerSocket对象。

2.调用accept方法监听等待,获取到连接的Socket对象。

3.利用获取到的Socket对象获取到对应的输入输出流。

4.利用获取的流进行数据的读写。

5.流以及服务器端的关闭。

8.1.2 Socket

Socket是JDK提供的用于开发客户端的类。Socket的常用构造方法如下。

构造方法当中第一三个方法都是连接到指定的地址和端口的Socket对象。第二四个是除指定了连接的端口和地址外还指定了自己的端口和地址。指定自己地址和端口方法也是适用于机器有多个IP的情况下。

Socket当中常用的方法如下。

在实际的应用当中,当应用程序的网络连接或者读取数据的进程一直处于阻塞的情况下,开发者希望可以设定一个合理的操作时间,当超过这个时间后系统自动的认为操作失败,而设置这个合理时间的时长就是通过setSoTimeout方法来设置的。

Socket的开发步骤也非常简单,可以总结为如下几个步骤。

1.指定IP和端口创建Socket对象。

2.连接成功后获取到Socket对象的输入输出流。

3.利用获取的输入输出流进行数据的读写。

4.客户端和流的关闭。

8.1.3 Socket通信实例

上两个小节当中对服务器和客户端的套接字都进行了一定的了解,本节通过实例来看Socket的具体开发过程。

1.创建一个名为TestServerSocket的J2SE项目。

2.在第一步创建的项目当中创建一个带main方法的名为TestServerSocket

的类,添加代码如下。

3.创建一个名为TestSocket的Android项目。

4.打开AndroidManifest文件,添加网络访问权限如下图。

5.打开main.xml文件,添加相应的按钮,文本编辑框。

6.打开Activity类,添加代码如下。

7.运行代码如下图。

以上是客户端,下图为服务器端。

这个实例只是一个简单的一对一连接,多连接可以用多线程来实现。

服务器在接受到Socket连接后为每一个连接单独启动一个独立的线程来处理数据即可。

8.2 基于Http协议网络通信

8.2.1 URL

URL是Uniform Resource Locator的缩写,它是同一资源定位器。也可以理解为是指向互联网资源的指针。这个资源可以是简单的文件或者目录,也可以是复杂的对象引用。URL的格式一般如下:

Protocol://host:port/resourceName

比如:https://www.sodocs.net/doc/138218386.html,/indext.php

URL的常用构造方法如下。

有了URL对象后就可以用如下常用的方法来访问该URL对应的资源。

1.创建一个URL对象。

2.利用URL对象的openStream方法来打开对应的资源输入流。

3.利用输入流获取资源数据。

本节当中简单的介绍了URL,可以根据以上介绍的步骤,简单的在Tomcat当中挂一个文件提供下载,按照步骤编写程序代码。

8.2.2 HttpURLConnection

上节介绍的URL类中有一个openConnection的方法可以返回一个URLConnection 对象,本节要介绍的HttpURLConnection就是URLConnection的子类对象。所以创建HttpURLConnection对象就是通过URL的openConnection方法,通过对返回值进行强制类型转换来打开HttpURLConnection连接。

HttpURLConnection跟java当中的Http连接类似。具体通过实例来介绍,本实例是在上个章节的数据存储基础上再添加的内容。是用HttpURLConnection把文件从网络上下载,下载后存入到SD卡当中。

使用Tomcat,将要被下载的txt文件放置到Tomcat当中。Tomcat的使用此处不向大家具体介绍,如果不了解可以查阅相关的资料来了解。本代码是在此基础上编写的,如果没有放置好相应被下载的文件就不能正常的运行代码。

1.创建一个名为TestHttpURLConnection的项目。

2.打开AndroidManifest文件,添加相应的权限如下图。

3.编写一个读取数据和写入数据的FileUtil类,如下图。

4.打开main.xml文件,添加下载Button。

5.在Activity类中添加如下代码。

6.运行结果如图。点击下载按钮。

7.在DDMS当中查看对应的文件,也按下导出该文件,如下图。

8.3 其他网络通信

8.3.1 WIFI

WIFI是Wireless Fidelity的缩写,无线宽带也就是IEEE 802.11的统称。wifi 是一种短程无限传输的技术。一般工作是在2.4Ghz。支持Wifi的手机在覆盖网络区域可以通过Wifi连接上网络。它的优势在于不需要布线而且传输速度较快。并且Wifi 非常的安全,它的发射功率不超100mW。

WiFi的开发只能在真机上测试,模拟器不具备模拟Wifi功能。

WiFi的管理是通过WifiManager对象,该对象可以通过Context的Context.getSystemService(Context.WIFI_SERVICE)取得。

下面通过实例来介绍简单的Wifi操作。

1.创建一个名为TestWIFI的项目。

2.打开AndroidManifest文件,并添加相应的权限如下。

3.在Activity类当中添加代码如下。

4.运行结果如下图,需要注意的是真正的运行应该要连接手机真机设备运行。

8.4 本章小结

本章节主要介绍了Android应用中的网络编程,基于套接字的网络连接Socket、ServerSocket,基于Http协议的网络连接HttpURLConnection,以及WIFI的基本设置与操作。

Android Hotfix 新方案——Amigo 源码解读

Android Hotfix 新方案——Amigo 源码解读 首先我们先来看看如何使用这个库。 用法 在project 的build.gradle中 dependencies { classpath 'me.ele:amigo:0.0.3' } 在module 的build.gradle中 apply plugin: 'me.ele.amigo' 就这样轻松的集成了Amigo。 生效补丁包 补丁包生效有两种方式可以选择: ? 稍后生效补丁包 ? 如果不想立即生效而是用户第二次打开App 时才打入补丁包,则可以将新的Apk 放到/data/data/{your pkg}/files/amigo/demo.apk,第二次打开时就会自动生效。可以通过这个方法 ? File hotfixApk = Amigo.getHotfixApk(context); ?

获取到新的Apk。 同时,你也可以使用Amigo 提供的工具类将你的补丁包拷贝到指定的目录当中。 ? FileUtils.copyFile(yourApkFile, amigoApkFile); ? ? 立即生效补丁包 ? 如果想要补丁包立即生效,调用以下两个方法之一,App 会立即重启, 并且打入补丁包。 ? Amigo.work(context); ? Amigo.work(context, apkFile); ? 删除补丁包 如果需要删除掉已经下好的补丁包,可以通过这个方法 Amigo.clear(context); 提示:如果apk 发生了变化,Amigo 会自动清除之前的apk。 自定义界面 在热修复的过程中会有一些耗时的操作,这些操作会在一个新的进程中的Activity 中执行,所以你可以通过以下方式来自定义这个Activity。

android系统刷机关于BIN的解释及方式

特别介绍一下关于刷机的方式。这或许对很多脑子里一塌糊涂的朋友有用。必看 1、官方一件升级。(主要作为手机死了的挽救措施。)需要之后自己root,刷rec和刷rom 2、先root,然后刷rec,然后找到rom放进sd卡,然后进入rec开始卡刷rom。Rom一般自带root。(((((特别注明,我上面编辑的帖子就是这种方法。root-->刷rec-->刷rom)))))))) 3、刷bin 或者迷你bin,然后刷卡里准备好的rom。迷你bin一般带有刷好的rec。 4、直接刷一步到位的bin包,里面包含有rom。无需root和刷rec。 教学完毕 以上4个方法为目前论坛上五花八门的教程帖子的完全总结。。不外乎就这些方法了。。。换言之,我们想给自己的手机换个系统总共可以采取以下方式。 (一)下载官方升级工具直接升级系统。此方法root 刷bin 刷rec 刷rom 一步操作完成。缺点:安装升级工具的驱动比较麻烦,系统只能采用官方的。 (二)保持你手机bin版本不变,采用root-->刷rec-->刷rom的形式操作。此时你下载的rom包需要与你手机bin版本一致。缺点:论坛上属于你手机bin版本的rom很少,很难找,有些不能用。 (三)改变手机bin版本,采用root(通常此步可以省略,因为下一步的刷bin本身是具备root功能的,当然已经root的也没有什么影响)-->刷bin(或者刷mini bin)-->刷rec(通常此步也不需要,因为bin包一般自带rec)-->刷rom的形式操作。缺点:刷b in有变砖风险优点:可以任意选择bin版本,即是说,假如你要安装一个与自己手机bin版本不一致的rom包,只需要先刷一个对应的bin即可,系统选择很广。 (四)刷一步到位的bin包。不需要root,不需要刷rec 和刷rom。(形式类似官方升级,操作也基本一致,即是下载升级工具,装升级工具驱动,卸载电池手机卡后点击升级工具按提示操作即可。) 以上1,3,4方法都属于刷bin范畴。刷bin方法可参考下面步骤。(刷bin有变砖风险,以下步骤不一定完全绝对,我在此发出来,仅仅是为了大致说明一下思路,所以概不承担任何责任。另外由于下面安装驱动的方法来源于百度,原版在百度上图片不能显示,故在此不提供图片,希望理解) 下载各位大大或者官方升级工具,然后解压到电脑上一个方便找到的地方,其中会有一个驱动文件夹。 下载bin包(mini bin包和一步到位bin包类似)解压存放到电脑上相对容易找到的地方,(刷bin和mini bin 请注意提前下载rom到手机内存卡,一步到位bin不需要此步操作)

学习android的心得体会

学习android的心得体会 【篇一:android实训心得体会】 项目总结 时间过的好快,为期三个月的实训生活即将结束了,每一次的实训我们都受益匪浅,我 们学到的不仅仅是课内还有课外,实训让我们的课内知识得到了巩固,专业知识、编程水平 都有很大的提高,我们非常感谢这次实训。刚开始二周的高强度的课程安排让我们受益匪浅;接下来的项目实训又让我们可以巩固 了课程。这让我觉得实习生活充实而有意义。乐淘购物项目和android优化大师,我更好的学习了ui的设计,如何使界面漂亮,美观, 巩固了listview,gridview,的使用,学会了动画进入界面的,和会移动的画廊等等。在这 两个项目中,除了让我明白工作中需要能力,素质,知识之外,更重要的是学会了如何去完 成一个任务,懂得了享受工作。当遇到问题,冷静,想办法一点一点的排除障碍,到最后获 取成功,一种自信心由然而生,这就是工作的乐趣。有时候也需要虚心请教,从别人的身上 真得能学习到不自己没有的东西,每一次的挫折只能使我更接近成功。音乐播放器项目,我们是七个人组成小组完成的,由组长带领我们,分配任务,每个人, 都发挥自己的长处,更好地去完成任务。对于团队开发来说,团结一致使我深有体会。团队 的合作注重沟通和信任,不能不屑于做小事,永远都要保持亲和诚信,把专业理论运用到具 体实践中,不仅加深我对理论的掌握和运用,还让我拥有了一次又一次难忘的开发经历,这是也是实训最大的收获。这次实训对于我以后学习、找工作也真是受益菲浅,在这3个月中让我初步从理性回到 感性的重新认识,也让我初步的认识这个社会,对于以后做人所应把握的方向也有所启发!

Android源码下载方法详解

Android: Android源码下载方法详解 分类:Android平台 安卓源码下载地址:https://www.sodocs.net/doc/138218386.html,/source/downloading.html 相信很多下载过内核的人都对这个很熟悉 git clone git://https://www.sodocs.net/doc/138218386.html,/kernel/common.git kernel 但是这是在以前,现在如果这么执行的话,会显示如下内容 Initialized empty Git repository in /home/star/working/kernel/.git/ https://www.sodocs.net/doc/138218386.html,[0: 149.20.4.77]: errno=Connection refused fatal: unable to connect a socket (Connection refused) 通过浏览器输入https://www.sodocs.net/doc/138218386.html,/,发现该网站已经被重定向为 https://www.sodocs.net/doc/138218386.html,/source/downloading.html 可以在该页面的最后发现内核的下载方法。 下面我们介绍一下Android源码下载的步骤。 工作环境: 操作系统:Ubuntu 10.04 或Ubuntu10.10 git程序:1.7.0.4 或1.7.1 转载请注明出处:https://www.sodocs.net/doc/138218386.html,/pku_android 方法一: 1.1 初始化安装环境 参考网页https://www.sodocs.net/doc/138218386.html,/source/initializing.html 主要要做的就是安装jdk和安装一些软件包 $ sudo apt-get install git-core gnupg flex bison gperf build-essential \ zip curl zlib1g-dev libc6-dev libncurses5-dev x11proto-core-dev \ libx11-dev libreadline6-dev libgl1-mesa-dev tofrodos python-markdown \ libxml2-utils 如果已经安装了,就不许要这步了 1.2 无论下载内核和源码,都需要进行如下操作 参考网页https://www.sodocs.net/doc/138218386.html,/source/downloading.html $ mkdir ~/bin $ PATH=~/bin:$PATH $ curl https://https://www.sodocs.net/doc/138218386.html,/dl/googlesource/git-repo/repo > ~/bin/repo 如果出现: repo init error: could not verify the tag 'v1.12.7',

Android源代码结构分析

目录 一、源代码结构 (2) 第一层次目录 (2) bionic目录 (3) bootloader目录 (5) build目录 (7) dalvik目录 (9) development目录 (9) external目录 (13) frameworks目录 (19) Hardware (20) Out (22) Kernel (22) packages目录 (22) prebuilt目录 (27) SDK (28) system目录 (28) Vendor (32)

一、源代码结构 第一层次目录 Google提供的Android包含了原始Android的目标机代码,主机编译工具、仿真环境,代码包经过解压缩后,第一级别的目录和文件如下所示: . |-- Makefile (全局的Makefile) |-- bionic (Bionic含义为仿生,这里面是一些基础的库的源代码) |-- bootloader (引导加载器),我们的是bootable, |-- build (build目录中的内容不是目标所用的代码,而是编译和配置所需要的脚本和工具) |-- dalvik (JAVA虚拟机) |-- development (程序开发所需要的模板和工具) |-- external (目标机器使用的一些库) |-- frameworks (应用程序的框架层) |-- hardware (与硬件相关的库) |-- kernel (Linux2.6的源代码) |-- packages (Android的各种应用程序) |-- prebuilt (Android在各种平台下编译的预置脚本) |-- recovery (与目标的恢复功能相关) `-- system (Android的底层的一些库)

android2.2刷机教程

Htc desire 制作金卡、root、升级2.2 系统的一条龙教程 声明: 1、此贴非本人原创,而是综合许多作者成果并结合自己升级过程中解决所遇到问题经验而成的(本人已成功升级),希望对想升级2.2的机友有帮助。 2、让我们对那些辛勤付出的原创高手们表示崇高的敬意和衷心的感谢。 3、刷机有风险,此贴仅供学习交流之用,不提倡按此刷机,刷机过程有很多意外因素,如按此教程刷机出现不良后果自负。 入门: 1、请先安装ANDROID驱动,可以用通用驱动或HTC Sync(内含驱动的)。保证你的手机能被电脑识别。下载地址:https://www.sodocs.net/doc/138218386.html,/hk-tc/SupportDownload.aspx?p_id= 312&cat=3&dl_id=933 2、请使用安装了WINDOWS XP的电脑(其他系统我没试过,不知道怎么用。) 3、有个金士顿、SANDISK的原装TF卡。

4、网络连接,有些要上网找资源、下载软件的。 5、耐心加细心。 正式开始 第一步:制作金卡。 关于什么是金卡,坛子里有很多介绍,希望朋友们善用搜索引擎,在搜索引擎里搜索一下“制作金卡教程” 等即可查到。我这里简单地解释一下流程,其中某些步骤比网上的教程要简单,容易多了。 1、将TF卡插入你的G7中,注意,TF卡最好为金士顿、SANDISK等名牌非假货TF卡。 2、在Market里下载Estrongs或类似的资源管理器,以文本形式打开/sys/class/mmc_host/mmc*/mmc*:*/cid 文件。这个* 可能是数字或字母(网上教程说这里都是1或0,比如/sys/class/mmc_host/mmc0/mmc0:1/cid,这个是不准确的),这个文件打开来是一个32位的字符,中英混合的,记下这一串字符。(这个文件可能不好找,大家多找找)找到以后就把卡拔下,用读卡器插入电脑中,或者直接用手机以磁盘管理器模式连接电脑。并拔下电脑上除了你的TF卡以外的其他U盘、移动硬盘,方便后面的辨认。

培训机构企业java安卓考试面试

中软国际Android班第一阶段考试 姓名____ __ __ 班级____________ 注意事项:笔试时间90分钟,满分100分. 请使用钢笔或者圆珠笔填写试题答案. 请在规定处填写您得答案,选择题在试卷前部答题卡中填写答案,程序题答案请写在答题纸上. 请不要在试卷上涂写与试题无关得得标记。 (一)单项选择题(每题2分,共30分) 1)对以下两个代码片段说法正确得就是? 代码片段1: int a =3; int b=0; int c = a /b; 代码片段2: float a = 3、0f; float b= 0、0f; float c =a / b; A、执行两段代码都会抛出异常??B、执行两段代码都无异常抛出 C、执行两段代码,只有代码片段1抛出异常??D、执行两段代码,只有代码片段2抛出异常 2)以下说法错误得就是? A、Java中接口不能被private或Protected修饰符修饰? B、Java中一个类可以实现多个接口,但就是只能继承一个父类 C、接口中定义得成员变量,即使不说明,默认均就是public\static\final得 D、final关键字可以修饰接口 3)以下哪种数据类型不就是引用数据类型? A.String?B、int[]C、Double?D、float 4)给出以下代码,假设arr数组中只包含正整数值,请问下列代码段实现了什么功能? public int guessWhat(int arr[]) {//{1,5,2,3} int x=0; for(int i = 0;i 〈arr、length; i++){ x = x <arr[i]? arr[i]: x; } return x; } A获取数组得最大索引值??B判断数组中就是否存在重复元素 C获取数组中元素个数??D获取数组中得最大元素 5)如何明确释放掉一个对象占据得内存空间? A调用free()方法???B调用System、gc()方法 C赋值给该对象得引用为null??D程序员无法明确强制垃圾回收器运行 6)以下关于集合与数组得观点中,正确得就是() A可以通过int[4]a=new int[];声明一个长度为4得数组 B 数组只能存放基本数据类型 C 集合得长度就是固定得 D List与Map都可以用迭代方式进行遍历 7)以下哪个方法不就是Android生命周期得方法B A onstart(); B onServer();

Android USB 驱动分析

Android USB 驱动分析 一、USB驱动代码架构和使用 1、代码简介 USB驱动代码在/drivers/usb/gadget下,有三个文件:android.c, f_adb.c, f_mass_storage.c;g_android.ko 是由这三个文件编译而来,其中android.c 依赖于 f_adb.c 和 f_mass_storage.c(这两个文件之间无依赖关系)。 可在android.c中看到: static int __init android_bind_config(struct usb_configuration *c) { struct android_dev *dev = _android_dev; int ret; printk(KERN_DEBUG "android_bind_config\n"); ret = mass_storage_function_add(dev->cdev, c, dev->nluns); if (ret) return ret; return adb_function_add(dev->cdev, c); } 2、驱动使用 要使USB mass storage连接到主机: 打开/sys/devices/platform/usb_mass_storage/lun0/file文件,向 file文件写入一个存储 设备的路径,例如/dev/block/vold/179:0 (major:minor)路径; 这里的usb_mass_storage根据实际应用可以改的,由 platform_device_register函数的参数决 定。 例如: static struct platform_device fsg_platform_device = { .name = "usb_mass_storage", .id = -1, }; static void __init tegra_machine_init(void) { .... (void) platform_device_register(&fsg_platform_device); .... }

Android系统(安卓)手机刷机前需要知道的一些基础知识

一、关于Root 1、什么是“root”? “Root”权限相当于电脑的管理员权限,“Root”后用户可以完全权限访问Linux内核:“Root用户”可以编辑修改系统内的任何东西。出于安全考虑,“普通用户”没有该完全访问权限。 root你的手机之后,你就可以读写未root时你无法访问的手机内部核心区块。 当然,是否root完全取决你自己。普通手机用户不root也可以很好的使用自己的手机。 2、为何要“root”我的手机? 最主要的原因是刷第三方ROM(相当于重装电脑的操作系统)。另外,有ROOT权限后就可以运行一些需要root的软件。 Root后,你可以做的事: a)运行更多的Linux命令(android ADB)和超级用户权限。 b)可以使用许多需要root权限的软件(例如,钛备份,Root Explorer等)。 c)更改某些重要的核心系统设置。比如,关闭官方 Rom的安全校验以使我们可以刷写第三方固件,或者运行某些有趣的调节程序比如说超频,再或者还可以让我们安装核心recovery程序。 3、root安全吗? 是的。如果你胆大心细,按照教程来做,不会发生什么蛋疼的事。 4、root后会删除我的个人资料吗? 不会。root仅仅是改变系统权限而已。 5、root会使我的保修失效吗? 退一万步说,你可以unroot你的手机并恢复出厂设置,来假装什么事也没发生过。 6、root过程是可逆的吗? 是的。只要你愿意完全可以unroot你的手机。 二、关于S-OFF和刷机 1、“S-OFF”是什么?“S-ON”和“S-OFF”有什么区别?我为何需要“S-OFF”? 每一部手机缺省状态下都是“S-ON”。为了获取完全的写入权限(例如刷自制固件,装自制recovery工具),需要转换为“S-OFF”。 通常手机都是处于“S-ON”(Security ON)状态,此时手机“/system”和“/recovery”分区无法被读写。最直接的表现就是如果用RE管理器等高权限文件管理器删除“/system”文件夹下的程序,重启后程序又会出现(这也好多网友说获得root后还是删除不了系统自带软件的原因);另外无法修改开机第一屏画面。 S-OFF不同于root:S-OFF可以让你通过Bootloader里的Fastboot或者自制recovery(多数人用的都是clockwork)刷写自制固件。 2、如何“S-OFF”? 目前有两种S-OFF的方法: a)通过安装工程模式的hBoot来S-OFF。即所谓的软解。 b)通过某些设备,例如白卡来S-OFF。即所谓白卡解锁。 软解的手机进入Bootloader后第一行的末尾显示的是:ENG S-OFF,白卡解的手机则是:SHIP S-OFF。ENG意为engineering即工程模式,SHIP即意为原厂发布的。3、如何改回“S-ON”? 因某些原因(送去保修等)想要恢复S-ON的话,需要下载对应你手机版本的HTC 官方刷写程序RUU刷回原厂固件。这样S-ON就回来了。

Android 串口编程原理和实现方式附源码

提到串口编程,就不得不提到JNI,不得不提到JavaAPI中的文件描述符类:。下面我分别对JNI、以及串口的一些知识点和实现的源码进行分析说明。这里主要是参考了开源项目android-serialport-api。 串口编程需要了解的基本知识点:对于串口编程,我们只需对串口进行一系列的设置,然后打开串口,这些操作我们可以参考串口调试助手的源码进行学习。在Java中如果要实现串口的读写功能只需操作文件设备类:即可,其他的事都由驱动来完成不用多管!当然,你想了解,那就得看驱动代码了。这里并不打算对驱动进行说明,只初略阐述应用层的实现方式。 (一)JNI: 关于JNI的文章网上有很多,不再多做解释,想详细了解的朋友可以查看云中漫步的技术文章,写得很好,分析也很全面,那么在这篇拙文中我强调3点: 1、如何将编译好的SO文件打包到APK中?(方法很简单,直接在工程目录下新建文件夹libs/armeabi,将SO文件Copy到此目录即可) 2、命名要注意的地方?(在编译好的SO文件中,将文件重命名为:lib即可。其中是编译好后生成的文件) 3、MakeFile文件的编写(不用多说,可以直接参考package/apps目录下用到JNI的相关项目写法) 这是关键的代码: [cpp]view plaincopy

(二):

文件描述符类的实例用作与基础机器有关的某种结构的不透明句柄,该结构表示开放文件、开放套接字或者字节的另一个源或接收者。文件描述符的主要实际用途是创建一个包含该结构的或。这是API的描述,不太好理解,其实可简单的理解为:就是对一个文件进行读写。 (三)实现串口通信细节 1) 建工程:SerialDemo包名:org.winplus.serial,并在工程目录下新建jni和libs两个文件夹和一个org.winplus.serial.utils,如下图: 2) 新建一个类:SerialPortFinder,添加如下代码: [java]view plaincopy 1.package org.winplus.serial.utils; 2. 3.import java.io.File; 4.import java.io.; 5.import java.io.IOException; 6.import java.io.LineNumberReader; 7.import java.util.Iterator; 8.import java.util.Vector; 9. 10.import android.util.Log; 11. 12.public class SerialPortFinder { 13. 14.private static final String TAG = "SerialPort"; 15.

Android手机刷机变砖后无法开机的修复方法

对于广大Android刷友来说,最怕遇到的就是传说中的手机变板砖,无法启动的情况。在Android手机刷机的时候,难免会遇到刷机失败的时候,下面给大家说下如何修复能够让你的手机重获新生。1. 在PC上安装配置Android SDK Android手机刷机失败后手机变砖无法在手机上完成操作,智能借助Android SDK工具,所以你必须在操作的PC上下载并安装Android SDK程序,程序下载地址和安装配置方法见Android SDK官网。 2. 安装Android手机USB驱动程序 安装完Android SDK后就可以把手机通过USB线缆连接至PC,开启手机电源后PC会提示安装设备驱动程序,不要让系统自动查找驱动程序安装,选择自定义驱动程序位置,因为已经安装了Android SDK,驱动程序的位置默认为Android SDK的安装目录下的 usb_driver子目录,选择从这个目录安装驱动程序。 3. 下载一个可用Recovery程序 Android手机刷机失败后手机变砖的Android手机能否复活的关键就在于Recovery程序,

因为recovery程序意味着你可以再次刷新的ROM,相当于给PC重新安装操作系统。Android平台有很多可用的recovery程序,推荐使用最常见的Clock Recovery程序,注意recovery程序针对不同手机型号有不同版本的程序,下载时注意和手机型号匹配。把下载的recovery程序放在某一目录备用,比如 c: ecovery-RA-Magic-v2.3.1.img。 4. 关键步骤:重新给变砖的手机安装recovery程序 在PC上打开命令提示符(Windows系统,开始,运行,输入cmd回车),输入 #adb devices 回车,如果返回一串序列号说明手机已经正常连接。在命令提示符使用cd命令切换到recovery程序所在的目录。然后输入下面的命令: #adb reboot bootloader 回车后手机应该会进入fastboot模式,然后再执行下面的命令把recovery程序安装到手机上 #fastboot flash recovery-RA-Magic-v2.3.1.img 回车后如果看到下面的提示就说明recovery程序已经成功安装。 fastboot flash recovery recovery-RA-Magic-v2.3.1.img sending ‘recovery’ (4594 KB)… OKAY writing ‘recovery’… OKAY 拔掉手机USB连接线,关机,重新按指定键看看是否可以重新进入recovery模式了,到这一部,你的Android手机刷机后无法开机的问题就修复成功了,现在可以重新刷机给你心爱的手机再安装一个操作系统了。

App工程结构搭建:几种常见Android代码架构分析

App工程结构搭建:几种常见Android代码架构分析 关于Android架构,因为手机的限制,目前我觉得也确实没什么大谈特谈的,但是从开发的角度,看到整齐的代码,优美的分层总是一种舒服的享受的。 从艺术的角度看,其实我们是在追求一种美。 本文先分析几个当今比较流行的android软件包,最后我们汲取其中觉得优秀的部分,搭建我们自己的通用android工程模板。 1. 微盘 微盘的架构比较简单,我把最基本,最主干的画了出来: 第一层:com.sina.VDisk:com.sina(公司域名)+app(应用程序名称) 。 第二层:各模块名称(主模块VDiskClient和实体模块entities)第三层:各模块下具体子包,实现类。 从图中我们能得出上述分析中一个最简单最经典的结构,一般在应用程序包下放一些全局的包或者类,如果有多个大的模块,可以分成多个包,其中包括一个主模块。 在主模块中定义基类,比如BaseActivity等,如果主模块下还有子模块,可以在主模块下建立子模块相应的包。说明一点,有的时候如果只有一个主模块,我们完全可以省略掉模

块这一层,就是BaseActivity.java及其子模块直接提至第二层。 在实体模块中,本应该定义且只定义相应的实体类,供全局调用(然而实际情况可能不是这样,后面会说到)。在微盘应用中,几乎所有的实体类是以xxx+info命名的,这种命名也是我赞成的一种命名,从语义上我觉得xxxModel.java这种命名更生动更真实,xxxModel给我一种太机械太死板的感觉,这点完全是个人观点,具体操作中以个人习惯为主。还有一点,在具体的xxxInfo,java中有很多实体类中是没有get/set的方法,而是直接使用public的字段名。这一点,我是推荐这种方式的,特别是在移动开发中,get/set方法很多时候是完全没有必要的,而且是有性能消耗的。当然如果需要对字段设置一定的控制,get/set方法也是可以酌情使用的。 2. 久忆日记 相比于微盘的工程结构,久忆日记的结构稍微复杂了一些。如下图: 1).第一层和前面微盘一样的. 2).第二层则没有模块分类,直接把需要的具体实现类都放在下面,主要日记的一些日记相关的Activity。 3).第二层的实体包命令为model包,里面不仅存放了实体类

安卓系统各类手机刷机教程

安卓手机刷机教程 刷机:简单的说,android手机的刷机,就相当于给它重装一下系统,这和我们常见的电脑重装系统类似。通过刷机,给手机装入全新的手机系统。Recovery:翻译过来的意思就是恢复,不明思议,这是手机上的一个恢复模式。通过这个recovery,用户可以实现安装系统(就是所谓的刷机),清空手机各种数据,为内存卡分区,备份和还原等等很多功能。它类似于电脑上的Ghost一键 恢复。 ROM:ROM是英文Read Only Memory简写,通俗的来讲ROM就是android手机的操作系统,类似于电脑的操作系统Windows xp,Windows7等等。平时说给电脑重装系统,拿个系统光盘或是镜像文件重新安装一下就好了。而android手机上刷机也是这个道理,将ROM包通过刷机,重新写入到手机中,ROM就是 android手机上的系统包。 Wipe:Wipe翻译过来的意思就是抹去,擦除等,在recovery模式下有个wipe选项,它的功能就是清除手机中的各种数据,这和恢复出厂值差不多。我们最常用到wipe是在刷机之前,大家可能会看到需要WIPE的提示,是指刷机前清空数据,注意wipe前备份一下手机中重要的东西哦。 好了,看了这些名词解释,是不是对刷机的一些专业术语都有所了解了呢?下面 我们就开始刷机过程吧。 刷机前先对自己手机中的一些重要内容进行备份吧,像名片,短信,日历等重要信息,有需要的就先备份一下,否则刷机后就都没了。 备份好以后,我们需要先给我们的android手机下载一个适合该手机使用的rom 包,这就像电脑上在重做系统前需要买张系统盘或是在网上下载一个系统镜像,这里要注意的是,手机毕竟不是电脑,大家在下载rom时一定要下载适合自己手机的相应版本,其他型号手机的rom是不通用的。 准备工作都完成了,首先,将下载好的rom包通过数据线或是读卡器放到SD卡 的根目录下,然后重命名为update.zip, 然后关机,按住Home小房子键的同时按开机键,即可进入recovery恢复模式,然后移动轨迹球到第四项,按下轨迹球选择进入“Flash zip from sdcard”

安卓2.2系统刷机教程

安卓2.2系统刷机教程 请各位机油严格按照步骤的顺序刷机即可!100%完美(本人一个月内把自己的机器刷了100多次测试每个步骤可能造成的问题最后总结了以下方法,请放心刷机) 下面正式开始刷机!步骤如下: 1、拿起你可爱的defy ,首先不管你是什么版本的(所以不用问我这个版本能不能刷,那个版本能不能刷,我现在告诉你,只要你是defy 就能刷),OK,接下来把你的手机关机,将你的sim卡取出,再将你的SD卡取出)放在一边。 2、重新将你的手机装上电池(后盖可以不急着盖,因为以后还要装SIM卡和SD卡),同时按住电源开机键和音量的下调键,当屏幕出现M图标后松开,耐心等待一会,屏幕中央将出现安卓的小机器人图标,此时如果你是2.2系统那么请同时按住音量键的上调和下调键便能进入系统自带的Recovery模式,如果你之前是2.1的系统那么请按搜索键上方的区域进入Recovery模式,当进入recovery模式后用音量键选择到wipe data/factory reset 按电源键进入(2.1系统试按左下方的OK,进入)再用选择确认进行wipe,此时也请各位机油耐心等待,当wipe结束后会回到初始的recovery模式,接下来再用音量键选择第四项wipe cache partition再次进行wipe (注:有人认

为这一步没有必要,但还是请各位机油能按照我的做)当结束后再次返回到初始界面,请用电源键选择reboot system now重启手机。 3、重启玩手机后,请再次关机,关机后请同时按住电源键和音量上调键,当屏幕亮起时松开,此时屏幕上会出现几行白色英文(此为刷机模式),完成后请将手机放在一边待用。因为下面要在你的电脑端进行一些操作。 4、打开你的电脑(不管你是什么系统包括64位的系统,请放心不会对刷机造成任何影响),安装我下面给出的两个文件一个是驱动程序,一个是MOTO刷机工具(请一定下载我给出的链接) 手机驱动程序: https://www.sodocs.net/doc/138218386.html,/zh-cn/files/351a1e19-45a8-11e0-8d25-00 15c55db73d/ 刷机工具RSD:https://www.sodocs.net/doc/138218386.html,/199/19953.shtml 5、将上面下载好的两个程序安装好,然后点击RSD Lite 打开刷机工具,点击左上角的config 选择deviceid opti** 在弹出的对话框中选择first-come-first-serve devicei 点击OK后重新启动刷机工具RSD。 6、此时将凉在一边多时的defy 重新拿到手中用数据线把手机和电脑链接,此时不要轻举妄动,仔细观察刷机工具界面下方原本空白的

最全的Android源码目录结构详解

最全的Android源码目录结构详解 Android 2.1 |-- Makefile |-- bionic (bionic C库) |-- bootable (启动引导相关代码) |-- build (存放系统编译规则及generic等基础开发包配置) |-- cts (Android兼容性测试套件标准) |-- dalvik (dalvik JAVA虚拟机) |-- development (应用程序开发相关) |-- external (android使用的一些开源的模组) |-- frameworks (核心框架——java及C++语言) |-- hardware (部分厂家开源的硬解适配层HAL代码) |-- out (编译完成后的代码输出与此目录) |-- packages (应用程序包) |-- prebuilt (x86和arm架构下预编译的一些资源) |-- sdk (sdk及模拟器) |-- system (底层文件系统库、应用及组件——C语言) `-- vendor (厂商定制代码) bionic 目录 |-- libc (C库) | |-- arch-arm (ARM架构,包含系统调用汇编实现) | |-- arch-x86 (x86架构,包含系统调用汇编实现) | |-- bionic (由C实现的功能,架构无关) | |-- docs (文档) | |-- include (头文件) | |-- inet (?inet相关,具体作用不明) | |-- kernel (Linux内核中的一些头文件) | |-- netbsd (?nesbsd系统相关,具体作用不明) | |-- private (?一些私有的头文件) | |-- stdio (stdio实现) | |-- stdlib (stdlib实现) | |-- string (string函数实现) | |-- tools (几个工具) | |-- tzcode (时区相关代码) | |-- unistd (unistd实现) | `-- zoneinfo (时区信息) |-- libdl (libdl实现,dl是动态链接,提供访问动态链接库的功能)|-- libm (libm数学库的实现,) | |-- alpha (apaha架构) | |-- amd64 (amd64架构) | |-- arm (arm架构) | |-- bsdsrc (?bsd的源码)

安卓系统各类手机刷机教程

很多朋友对刷机都是一头雾水,每天都在听说刷机刷机,但就是不知道刷机是什么,自己也想尝试一下,但又不知道该如何操作,其实 不要把它想的多复杂,只要你按照下面的步骤来做,你也能给自己的android手机刷个新系统! 首先我们先了解几个刷机前要知道的名词吧! 刷机:简单的说,android手机的刷机,就相当于给它重装一下系统,这和我们常见的电脑重装系统类似。通过刷机,给手机装入全新的手机系统。 Recovery:翻译过来的意思就是恢复,不明思议,这是手机上的一个恢复模式。通过这个recovery,用户可以实现安装系统(就是所谓的刷机),清空手机各种数据,为内存卡分区,备份和还原等等很多功能。它类似于电脑上的Ghost一键恢复。 ROM:ROM是英文Read Only Memory简写,通俗的来讲ROM就是android手机的操作系统,类似于电脑的操作系统Windows xp,Windows7等等。平时说给电脑重装系统,拿个系统光盘或是镜像文件重新安装一下就好了。而android手机上刷机也是这个道理,将ROM包通过刷机,重新写入到手机中,ROM就是android手机上的系统包。 Wipe:Wipe翻译过来的意思就是抹去,擦除等,在recovery模式下有个wipe选项,它的功能就是清除手机中的各种数据,这和恢复出厂值差不多。我们最常用到wipe是在刷机之前,大家可能会看到需要WIPE的提示,是指刷机前清空数据,注意wipe前备份一下手机中重要的东西哦。 好了,看了这些名词解释,是不是对刷机的一些专业术语都有所了解了呢?下面我们就开始刷机过程吧。 刷机前先对自己手机中的一些重要内容进行备份吧,像名片,短信,日历等重要信息,有需要的就先备份一下,否则刷机后就都没了。 备份好以后,我们需要先给我们的android手机下载一个适合该手机使用的rom包,这就像电脑上在重做系统前需要买张系统盘或是在网上下载一个系统镜像,这里要注意的是,手机毕竟不是电脑,大家在下载rom时一定要下载适合自己手机的相应版本,其他型号手机的rom 是不通用的。 准备工作都完成了,首先,将下载好的rom包通过数据线或是读卡器放到SD卡的根目录下,然后重命名为update.zip, 然后关机,按住Home小房子键的同时按开机键,即可进入recovery恢复模式,然后移动轨迹球到第四项,按下轨迹球选择进入“Flash zip from sdcard”

安卓智能手机刷机无限重启问题解决方法 (1)

准备条件: 建议空白sd卡1-2G里面什么都没有,电量50%以上最好充满,准备民间2.3rom一个。 解决方法之一(亲测):前提是内存卡上不能有dload 文件,最好用个空白的卡,按音量上下键+关机键(俗称三键齐按,方便小白),出现粉屏,插入数据线连接电脑,,此刻电脑识别一个硬盘里面有image文件,替换自己早期做好了的在升级4.0前官方2.3的image备份(没有的到论坛上找)不建议格式化,然后再替换G大recovery5.0.2.7,替换完后扣电池,不要开机,因为此刻开机机子依然不能开机,会一直在菊花界面无限重启,然后装上电池,然后音量上键+开机键,进入rec模式,按正常刷民间2.3方法刷入准备好的民间2.3rom,刷好后重启,此刻发现自己的机子可以开机,打电话发信息,上网什么的都正常了,好了,此刻你可以刷任意的民间2.3rom。但是情况又出现了,不能刷回官方2.3版,是不是?一直卡在进度条的三分之一位置上?接下来介绍接上一个方法的方法。

解决方法二(亲测):上一个方法你做好看懂了吗?不懂的返回去再看。接下来的是强行刷官方4.0,空白sd卡上建立dload文件夹,将4.0step1复制dload里面,确保sd/dload/UPDATE.APP,然后sd卡插回手机,装上电池,按音量上下键+开机键,不要松手,自动进入粉色进度条,看奇迹出现了,第一个进度条是不是顺利的走完了?是的顺利的走完了,好了,这时候机子会自动重启,然后一直重启,好,没关系,扣电池,将sd上的dload里面的文件全删了,再将step2里面的app文件复制进去,确保sd/dload/UPDATE.APP,然后sd卡插回手机,装上电池,按音量上下键+开机键,不要松手,自动进入粉色进度条,这里时间估计要5-6min,看奇迹又出现了,进度条又顺利的走完,此时机子可以正常的开机了,开机后机子是4.0版的,还有step3就按照官方的办法sd卡升级,step3建议一定要刷进去。好了机子此刻是救活可以用了,打电话发信息,上网什么的都正常了。

HTC G13 安卓手机 刷机教程

HTC G13 安卓手机刷机教程 (转载) 请先确定你是S-OFF 确认方法:关机后拆下电池再装上)。按下“音量向下键”,马上再按住“开机键”2秒。就会进入HBOOT界面,第一行就会显示是哪种类型的S-ON或是S-OFF 如下图就是S-OFF 如果你是S-ON 那你走吧。 进入主题首先先如果你要删除自带软件必须有ROOT的权限而刷ROOT权限以前要刷入recovery但刷入recovery前要明白你的销售地的代码 现在就先刷入recovery,地址: https://www.sodocs.net/doc/138218386.html,/thread-7706122-1-1.html这个是智能手机网的帖子。里面有地址。我没有直接的地址。不用申请论坛用户。他支持QQ号登陆。 Recovery 安装方法: 1、确保你的机器已经是S-OFF;

2、确保你的存储卡是FAT32格式; 3、将附件下载保存到SD卡根目录(就是你在“我的电脑”里,打开“移动硬盘”后的第一个界面。就是SD卡的表面上)并重新命名为PG76IMG.zip 4、将卡插入手机,手机关机; 5、按住音量下+开机键开机; 6、等待提示是否更新Recovery,按音量键上确定,开始刷新。 7、安装完提示按电源键重启。 8、按住音量下然后按电源键重启。 9、重启按音量下选择Recovery,安电源键进入Recovery模式。 10、ok,Recovery刷好了! 在这个过程中有的人不会出现6这个步骤。也就是界面会 显示:cid incorrect update fail! press to reboot 这就要知道你的销售地的代码。 这时候需要一个软件"MniADB"这个软件可以知道你的销售地的代码。 电脑连接手机(连接即可,不过保险一点还是选择HTC sync同步吧,如果PC端的HTC sync 提示没有找到设备,不用管它,miniADB已经可以正常运行)。 下载解压MiniADBD点击RunMe.bat并输入“adb shell getprop ro.cid”(直接输入即可,另外双引号就不用了)然后按回车键 后会出现这个画面 其中第7行中 HTC-038是我的手机销售地代码你也有你自己的记住这个代码,有用 打开“PG76IMG.zip”(就是刷Recovery的文件)打开他里面的“android-info.txt”文

相关主题