android开发

AndroidManifest.xml文件的理解

元气小坏坏 提交于 2020-04-02 09:28:23
一,重要性 AndroidManifest.xml是Android应用程序中最重要的文件之一。它是Android程序的全局配置文件,是每个 android程序中必须的文件。它位于我们开发的应用程序的根目录下,描述了package中的全局数据,包括package中暴露的组件 (activities, services, 等等),以及他们各自的实现类,各种能被处理的数据和启动位置等重要信息。 因此,该文件提供了Android系统所需要的关于该应用程序的必要信息,即在该应用程序的任何代码运行之前系统所必须拥有的信息。一个典型的Android应用程序的结构如下图所示: 二,主要功能 它指定了该应用程序的Java包:该包名作为应用程序的一个独特标识。 它描述了应用程序组件:该应用程序由哪些activity,service,broadcast receiver和content provider组成。它指定了实现每个组件的类以及公开发布它们的能力(例如,它们能持有哪个Intent信息)。这些声明使Android系统知道这 儿有什么组件以及在什么条件下它们可以被载入。 它决定那些进程将容纳应用程序组件。 它声明了本应用程序必须拥有哪些许可,以便访问API的被保护部分,以及与其他应用程序交互。 它也声明了其他应用程序在和该应用程序交互时需要持有的许可。 它列出了Instrumentation类

android基础—Fragment学习笔记

一曲冷凌霜 提交于 2020-04-01 18:08:39
随着移动设备的飞速发展,平板电脑也变得越来越普及。平板电脑和手机最大的区别就在于屏幕的大小,一般手机屏幕的大小会在 3 英寸到 5 英寸之间,而一般平板电脑屏幕的大小会在 7 英寸到 10 英寸之间。屏幕大小差距过大有可能会让同样的界面在视觉效果上有较大的差异,比如一些界面在手机上看起来非常美观,但在平板电脑上看起来就可能会有控件被过分拉长、元素之间空隙过大等情况。 作为一名专业的 Android 开发人员,能够同时兼顾到手机和平板的开发是我们必须要做到的事情,所以android3.0引入了Flagment的概念,它可以让界面在平板上更好的展示。 参考: 1. 第一行代码160页 2. http://blog.csdn.net/lmj623565791/article/details/37970961 1. Flagment的概念 Flagment也被称为碎片,是一种可以嵌入在Activity中的 UI 片段,它能让程序更加合理和充分地利用大屏幕的空间。 在很多情况下,都是先针对手机开发一套App,然后拷贝一份,修改布局以适应平板神马超级大屏的。难道无法做到一个App可以同时适应手机和平板么,当然了,必须有啊。Fragment的出现就是为了解决这样的问题。 你可以把Fragment当成Activity的一个界面的一个组成部分

APK文件浅析-Android

≡放荡痞女 提交于 2020-04-01 14:06:55
2011~2015,5年时间,断断续续学习了Android。 最近打算在2011年2个月认真学习的基础上,深入学习下。 由于有之前的Android基础,加上N年的Java等变成经验,自我感觉Android应用开发还是比较简单的。 至少相比iOS开发来说。 继续坚持自己的习惯,写点自己的体会,总结自己的经验。 学了又忘了,没啥用啊~ Android打包之后,生成了APK文件。 APK文件其实是个zip文件。 比如,FileExplorer.apk,把后缀改成zip,就成了 FileExplorer.zip。 类似的还有Excel文件,比如FansUnion.xlsx,改后缀FansUnion.zip,解压之后: _rels docProps xl [Content_Types].xml 有兴趣的可以自己试试哦~ 解压之后: META-INF --CERT.RSA --CERT.SF --MANIFEST.MF(Java打包的程序,基本都有这个文件.最初以为和Java中的一样,后来发现不是的。) (1)MANIFEST.MF:这是摘要文件。程序遍历Apk包中的所有文件(entry),对非文件夹非签名文件的文件,逐个用SHA1生成摘要信息,再用Base64进行编码。如果你改变了apk包中的文件,那么在apk安装校验时,改变后的文件摘要信息与MANIFEST.MF的检验信息不同

APK文件浅析-Android

妖精的绣舞 提交于 2020-04-01 13:35:42
2011~2015,5年时间,断断续续学习了Android。 最近打算在2011年2个月认真学习的基础上,深入学习下。 由于有之前的Android基础,加上N年的Java等变成经验,自我感觉Android应用开发还是比较简单的。 至少相比iOS开发来说。 继续坚持自己的习惯,写点自己的体会,总结自己的经验。 学了又忘了,没啥用啊~ Android打包之后,生成了APK文件。 APK文件其实是个zip文件。 比如,FileExplorer.apk,把后缀改成zip,就成了 FileExplorer.zip。 类似的还有Excel文件,比如FansUnion.xlsx,改后缀FansUnion.zip,解压之后: _rels docProps xl [Content_Types].xml 有兴趣的可以自己试试哦~ 解压之后: META-INF --CERT.RSA --CERT.SF --MANIFEST.MF(Java打包的程序,基本都有这个文件.最初以为和Java中的一样,后来发现不是的。) (1)MANIFEST.MF:这是摘要文件。程序遍历Apk包中的所有文件(entry),对非文件夹非签名文件的文件,逐个用SHA1生成摘要信息,再用Base64进行编码。如果你改变了apk包中的文件,那么在apk安装校验时,改变后的文件摘要信息与MANIFEST.MF的检验信息不同

如何将Eclipse中的项目迁移到Android Studio 中

回眸只為那壹抹淺笑 提交于 2020-04-01 13:08:06
如果你之前有用Eclipse做过安卓开发,现在想要把Eclipse中的项目导入到Android Studio的环境中,那么首先要做的是生成Build Gradle的文件。因为Android Studio 是用Gradle来管理项目的,具体操作步骤如下: 从Eclipse中导出 1.将你的ADT插件版本升级到22.0以上。 2.在Eclipse中,选择File-->Export。 3.在弹出的导出窗口中,打开Android的文件夹,选择“Generate Gradle Build Files”。 4.选中你想要导入到Android Studio中的项目,Finish。 PS:导出的项目将会和原来的项目在同一目录,覆盖原来的同时,会新增一个叫build.gradle的文件,导入Android Studio时将首先读取这个文件。 导入到Android Studio 1.在Android Studio 中,首先关掉你当前的打开的项目。 2.在欢迎界面,点击Import Project(注:也是可以直接在菜单选择Import project的) 3.选中你在Eclipse中导出的项目,展开目录,点击build.gradle文件,然后OK 4.在之后的弹出对话框中,会要求你选择Gradle的配置,选中Use gradle wrapper.(注:也可以自定义你本机装的Gradle) PS

全网最详细的 动态Toolbar 开发实践总结,99%的程序员都在看!

做~自己de王妃 提交于 2020-04-01 09:37:50
全面的介绍一下 Toolbar 的使用。说起 Toolbar ,可能有很多开发的童鞋还比较陌生,没关系,请接着往下看。 初识 Toolbar Toolbar 是在 Android 5.0 开始推出的一个 Material Design 风格的导航控件 ,Google 非常推荐大家使用 Toolbar 来作为Android客户端的导航栏,以此来取代之前的 Actionbar 。 与 Actionbar 相比, Toolbar 明显要灵活的多。它不像 Actionbar 一样,一定要固定在Activity的顶部,而是可以放到界面的任意位置。除此之外,在设计 Toolbar 的时候Google也留给了开发者很多可定制修改的余地,这些可定制修改的属性在API文档中都有详细介绍,如: 设置导航栏图标; 设置App的logo; 支持设置标题和子标题; 支持添加一个或多个的自定义控件; 支持Action Menu; 总之,与 Actionbar 相比, Toolbar 让我感受到Google满满的诚意。怎样?是否已经对 Toolbar 有大概的了解,跃跃欲试的感觉出来了有木有?接下来,我们就一步一步的来看如何使用 Toolbar (其实是我使用 Toolbar 踩坑填坑的血泪史,你们接下去看,我先擦个眼泪…. )。 开始使用 Toolbar 前面提到 Toolbar 是在 Android 5.0

js判断是安卓 还是 ios webview?

天大地大妈咪最大 提交于 2020-04-01 07:47:26
通过判断浏览器的userAgent,用正则来判断是否是 ios 和 Android 客户端。 代码 如下: <script type="text/javascript"> var u = navigator.userAgent; var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端 var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端 alert('是否是Android:'+isAndroid); alert('是否是iOS:'+isiOS); </script> 可以打开你的 Android 手机或者 iphone 扫描看看 下面一个比较全面的浏览器检查函数,提供更多的检查内容,你可以检查是否是移动端( Mobile )、ipad、iphone、微信、QQ等。 第一种:来自http://blog.baiwand.com/?post=176 <script type="text/javascript"> //判断访问终端 var browser={ versions:function(){ var u = navigator.userAgent, app = navigator.appVersion;

Android 二维码 生成和识别(附Demo源码)

大城市里の小女人 提交于 2020-04-01 05:17:40
该文章用于转载学习使用,原文出处: http://www.cnblogs.com/mythou/p/3280023.html 今天讲一下目前移动领域很常用的技术——二维码。现在大街小巷、各大网站都有二维码的踪迹,不管是IOS、Android、WP都有相关支持的软件。之前我就想了解二维码是如何工作,最近因为工作需要使用相关技术,所以做了初步了解。今天主要是讲解如何使用ZXing库,生成和识别二维码。这篇文章实用性为主,理论性不会讲解太多,有兴趣可以自己查看源码。 1、ZXing库介绍   这里简单介绍一下ZXing库。 ZXing是一个开放源码的,用Java实现的多种格式的1D/2D条码图像处理库,它包含了联系到其他语言的端口。Zxing可以实现使用手机的内置的摄像头完成条形码的扫描及解码。该项目可实现的条形码编码和解码。目前支持以下格式: UPC-A,UPC-E、 EAN-8,EAN-13、 39码、 93码。ZXing是个很经典的条码/二维码识别的开源类库,以前在功能机上,就有开发者使用J2ME运用ZXing了,不过要支持JSR-234规范(自动对焦)的手机才能发挥其威力。   下面是ZXing的demo运行,我这里创建了一个二维码,内容是我博客的网址,大伙可以用微信的扫一扫功能,试一下。就可以直接打开我博客。 (PS:新建的QQ群,有兴趣可以加入一起讨论:Android群

Android开发之DOS命令行的使用

回眸只為那壹抹淺笑 提交于 2020-04-01 04:52:19
命令行工具   把SDK的tools路径加入环境变量PATH之后就可以在任何目录下调用Android调试命令来运行程序。   在控制台窗口内可以输入下列命令:   android –h   帮助命令,可用来确认安装配置是否成功,并且可以看到其他的命令。   运行后结果如下图:    创建AVD虚拟设备    android create avd –n <name> -t <targetID>[-<option><value>]   <name>是要创建的AVD的名称   <targetID>是Available Android Targets,即使用的SDK版本,可以输入下列命令获得:    android list targets   比如先得到targets:   然后创建AVD:      可以用 android list avd 来查看计算机上创建的虚拟设备。   AVD的保存位置会根据一个叫做 “ANDROID_SDK_HOME” 的环境变量来指定,如果没有指定该变量,则它会保存在系统默认的目录下。   在Windows系统中的默认路径是 C:\Users\<user>\.android\avd   可视化的方法是直接点击运行SDK目录下的 AVD Manager.exe 启动模拟机   SDK tools目录下的 emulator.exe

Android实时监听网络状态(2)

旧街凉风 提交于 2020-03-31 04:00:09
Android实时监听网络状态(1) 其实手机在网络方面的的监听也比较重要,有时候我们必须实时监控这个程序的实时网络状态,android在网络断开与连接的时候都会发出广播,我们通过接收系统的广播就可以实现网络的监听。 1、添加访问网络和获取网络状态的权限 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="android.permission.INTERNET" /> 2、新建一个Application类并继承android.app.Application 申明变量保存网络状态 package com.javen.application; import com.javen.netbroadcast.NetUtil; public class Application extends android.app.Application { private static Application mApplication; public static int mNetWorkState; public static synchronized Application getInstance() { return mApplication;