安卓

开发阶段总结

爱⌒轻易说出口 提交于 2019-12-02 22:10:58
开发的关键点在于学习,学习可以说是在任何行业永恒的话题,学习什么?如何去学习?就编程而言,学习最终是为了应用,首先要学习到这种应用,然后学习其如何应用,再学为何能这样应用,最后学如何建立或者(根据需要)更改这种应用。 假设你想学习一个开源项目,首先要了解该项目应用的工作机制,熟悉其业务逻辑,懂得其业务核心在哪里,业务边界在哪里,什么地方正常使用无问题,什么地方正常使用可能有问题(所谓的‘坑’),什么地方在某种情况下使用必有问题等等。 然后需要了解其组成原理,即是代码组成。在对代码工作目的充分了解的前提下,从代码源头找起(方法调用部分),学会单元测试,对代码相关位置进行功能验证,对其相应功能分别进行深入,慢慢排除模块干扰(一般来说,为了提高项目的可维护性,都会将模块进行划分,以至于相应的功能具体实现被划分模块的代码掩盖),同时学习该模块的建设,积累经验 最后最终的目的自然是要根据需要更改此项目(或者不需要更改,但最好能有更改的能力,一般项目应用范围难以保证一定在业务需求之内),假设前两点都能正常完成,那么我对于该项目的各个功能的应用点、边界问题、架构划分、具体实现应该有了一定的了解,通常情况下,为了降低功能及模块的耦合度,项目功能的具体实现都是边界狭隘的单面功能,一般边界在一个任务的范围内,如果业务需求要求更改相关具体实现,应该从调用者处改起(不能改变单面功能的实现

浅谈Android虚拟机的动态加载技术

前提是你 提交于 2019-12-02 19:34:46
Android虚拟机的动态加载技术分为两种: 一种是加载基于NDK的so库;另一种是加载用java语言开发的zip包 。我今天主要讨论后者。 先简单说明一下so库加载。 NDK的执行效率很高,加密性很好,但同时开发入门难度大,一般用于加解密、数学运算等场合 。so的加载很简单,如果APK发布时已经携带了so文件,只需要在加载时调用 System.loadLibrary(libName) 方法即可。由于软件的安装目录中存放so的目录是没有写权限的,开发者不能更改该目录的内容,所以如果要动态加载存放在其他地方的so文件,用 System.load(pathName) 方法即可。 现在我们重点来看一下如何用java开发android的动态包。之所以前面称之为zip包,是因为 jar和apk其实都是zip格式的 。android虚拟机支持这两种文件后缀的包。 android虚拟机支持加载zip包中的dex格式的代码文件 。所以我们要用到一个很重要的类 DexClassLoader ,这个类是动态加在技术的关键。提到动态加载,还需要用到的一个就是 java的反射技术 ,下面就举一个调用伪代码: DexClassLoader dcl = new DexClassLoader( zip文件所在绝对路径 , zip文件所在目录 , 默认加载so所在目录 ,

基于Jenkins + Tomcat 的安卓客户端可持续化构建及发布下载(loltube.cn)

会有一股神秘感。 提交于 2019-12-02 00:12:02
一. Jenkins 可持续化构建环境请参考 文章 http://my.oschina.net/long0419/blog/183299 二. 基于搭好可持续构建环境完成基础上 ,使用Ant 来编写安卓持续化构建环境 (未使用gradle 原理一样) 1、首先要去官网下载ANT代码。 ANT官网下载地址 2、下载ANT循环打包JAR包。 ANT循环JAR包下载地址 网盘下载地址 3、解压得到其中的ant-contrib-1.0b3.jar文件待用。 做完以上3步,ANT多渠道打包所需要的软件就准备完毕了,接下来就是环境配置了(略去)。 4. 打包过程 总共需要编辑4个文件,分别为build.xml、local.properties、custom rules.xml、ant.properties. 同时准备好自己的签名文件:android key.keystore。 1、编辑local.properties文件内容,主要是配置SDK路径及项目路径 # This file is automatically generated by Android Tools. # Do not modify this file -- YOUR CHANGES WILL BE ERASED! # # This file must *NOT* be checked into Version Control

在appstore里面搜索android会出现哪些鬼?

百般思念 提交于 2019-12-01 01:17:39
  曾经一个朋友建议我去麦当劳买完套餐,然后去KFC吃,看看会有什么效果。我当时的一次反应是会不会被KFC的工作人员打呢?这是赤裸裸的砸场子唉,就好像07年我最早研究SEO的时候,在谷歌搜索SB,第一个是百度,后来百度搜索SB,第一个是谷歌。这里面一定是会有一点人工干预的成分在里面的,那现在我们在Appstore里面搜索android都会出现哪些产品呢?   1,开发手册大全(这是在提醒开发者,好好学手艺才是王道)   在初学程序开发中需要快速掌握一些基础知识,本应用汇集了了一些作为开发必须掌握的基础知识。应用简约而不简单,提供各类丰富的开发手册。   2,Android TV(这是什么鬼?)   The Android TV app is now available in the App Store. Use your iPhone as a remote for your Android TV. The d-pad mode and touchpad modes let you easily navigate to your favorite content. Tap the microphone to start a voice search or use the keyboard to input text on your Android TV。   3,Air

关于安卓工程导出带res资源文件的jar的总结

笑着哭i 提交于 2019-11-30 06:16:32
安卓项目导出成jar,自带的res资源不能正常使用,网上各说纷纭,总结一下归纳为五类,但是没有一种能够提供直接将res文件夹打包进jar,并能够使用R文件引用的方式。 打包时包含res文件夹,并通过R文件的反射获取资源: 此种方式最坑爹了,根本就是想当然。 因为jar中的res与应用的res合并是在生成APK时, 此时应用中对R文件中id的引用已经替换为常数,R文件不会在合并后再次更新,所以对jar中res的引用会报错。 打包时,将资源放在asset文件夹内,通过AssetsManager获取指定资源: 目标应用和jar中的assets文件夹会合并,所以可以通过获取该应用的此类文件夹来获取目标资源, ---缺点是如果是图片资源,不能与屏幕适配, 如果有一种适配屏幕的算法,那么此法应该是可行的 另外就是资源会被暴露给二次开发者 使用library项目 参见博客地址: 【这才是正解!】Android 自定义类库打包jar! 谁说不可以打包res 文件? 此类方法不能混淆代码,生成的jar包根本没有资源文件,而 官网说明 也指出此方式不能导出jar文件(并非那篇博客中所说的可以使用bin目录下的jar包),也就是说发布时需要提供library源项目,也就是说你所谓的库代码直接暴露给别人了,这恐怕不是广大开发者所希望的。 在引用此lib的目标项目中会看到一个包含已经编译成class

Android技能-点九图的制作

时光怂恿深爱的人放手 提交于 2019-11-29 09:19:46
安卓开发者必备技能之-点九图的制作 前言 很多安卓开发者觉得UI制作都是美工的事情,自己只需要完成控件的摆放和功能的实现。但是很多时候,在我们自己写一些小应用或者小Demo的时候,并不会有个美工在我们身边,而点九图之于我们安卓开发者来说再常见不过了,所以这个技能我们掌握了也是非常实用的。以下博文只是带大家入门使用点九图,不敢在美工设计师面前班门弄斧,大神请直接略过。 点九图 随着智能手机的发展,我们的应用需要适应不同屏幕尺寸的手机,同一幅界面会在随着手机(或平板电脑)中的方向传感器的参数不同而改变显示的方向,在界面改变方向后,界面上的图形会因为长宽的变化而产生拉伸,造成图形的失真变形。 而点九(即.9),是andriod平台的应用软件开发里的一种特殊的图片形式,文件扩展名为:.9.png,正是为了解决我们的图片在不同尺寸屏幕上显示失真而应运而生的一种格式。 <center>![](http://7xrwkh.com1.z0.glb.clouddn.com/post-dianjiu-1.jpg)</center> <center>普通拉伸和点九拉伸效果对比</center> <!-- more --> 经过对比,很明显,使用点九后,仍能保留图像的渐变质感,和圆角的精细度。 所以,使用.9图的意义就是为了从自己.png格式的图片中选画出四条线,这四条线相互交错构成了九个部分

安卓入门笔记之AndroidManifest.xml文件详解

≡放荡痞女 提交于 2019-11-29 06:54:14
本文为安全专家 李洋 的最新一篇专栏文章,来自 51CTO.COM 的专栏 AndroidManifest.xml文件是Android系统重要的权限申请和定义配置文件,程序员在开发时需要通过其来向系统预先定义和申请应用程序运行所需要的权限。灵活、安全地使用该配置文件是Android安全保障的一个不可忽视的方面。 了解AndroidManifest.xml文件的主要用途 AndroidManifest.xml主要包含以下功能: 说明application的java 数据包,数据包名是application的唯一标识; 描述application的component; 说明application的component运行在哪个process下; 声明application所必须具备的权限,用以访问受保护的部分API,以及与其他application的交互; 声明application其他的必备权限,用以component之间的交互; 列举application运行时需要的环境配置信息,这些声明信息只在程序开发和测试时存在,发布前将被删除; 声明application所需要的AndroidAPI的最低版本级别,例如1.0,1.1,1.5等; 列举application所需要链接的库; 熟悉AndroidManifest.xml文件的结构及元素 AndroidManifest

Qt for Android 环境搭建方法

倖福魔咒の 提交于 2019-11-29 05:06:52
Qt for Android 环境搭建方法 第一步、准备所需要的安装包 (1) 下载qt-windows-opensource-5.1.1-android-x86-win32-offline, (不同配置的机型下载不同的版本),下载路径: http://qt-project.org/downloads (2) 64位机器:adt-bundle-windows-x86_64-20131030.zip 或者 32位机器:adt-bundle-windows-x86-20131030.zip 下载地址: http://developer.android.com/sdk/index.html (3)android-ndk-r9b-windows-x86_64-legacy-toolchains.zip (4)android-ndk-r9b-windows-x86_64.zip 下载地址:http://developer.android.com/tools/sdk/ndk/index.html 以上两种根据机器配置,选择32位或64位的程序下载。 (5)apache-ant-1.9.2-bin.zip 下载地址:http://ant.apache.org/bindownload.cgi 选择 archive: apache-ant-1.9.2-bin.zip 下载 ( 6 ) jdk-7

IntelliJ IDEA 13 + Genymotion 2.3 开发环境搭建

不羁岁月 提交于 2019-11-27 00:38:20
【声明】 本文来自: http://www.cnblogs.com/smyhvae/p/4013535.html 【有修改】 【正文】 【开发环境】 物理机版本:Win 7旗舰版(32位) Java SDK版本:jdk1.8.0_20(32位) Android SDK版本:Android 4.4(API 20) IntelliJ IDEA版本:IntelliJ IDEA 13.1 一、IntelliJ IDEA的引入: 2013年,IntelliJ IDEA小组已经与众多业内领先的开发技术建立了非常紧密的关系:例如Android, Spring, Scala和Gradle. 这样一来,我么就能够在百舸争流中保持领先,为开发者提供最优质的开发工具,让我们体验到最尖端的开发技术。我们就先来介绍一下这几个关键词: JavaEE 8 :为了兑现我们“最先”而且“最优”地为所有Java开发者提供新技术支持的诺言,IntelliJ IDEA 13 全面支持Java EE 8——Oracle最新推出的企业Java平台。在最新版本的Intellij IDEA中,为CDI 1.1, JSF 2.2,JAX-RS 2.0, 批处理和其他新规范提供代码补全支持。同时,还提供对新版本应用服务器的支持,例如GlassFish 4, Wildfly(就是原来大名鼎鼎的JBoss), Tomcat 8等等。