【android原生应用】之闹钟应用搭起篇

由于工作原因接触android开发一段时间了,对于开发有了一些了解,于是萌生了搭起android原生应用进行分析和学习的想法。先从闹钟应用开始吧。

1.首先要下载原生应用,原生应用在原生系统里面(当然你得先下载原生的系统,过程请百度之)。

目录如下:packages\apps,所有的原生基础应用都在这个里面,我们进入DeskClock目录,将其作为一个工程搭建起来。

这时候会报错,根据报错信息来看是由于缺少jar包近期的,datetimepicker.jar 、android-support-v13.jar ,下面我们寻找着两个jar包。

2.增为DeskClock工程增加jar包

2.1 datetimepicker.jar 

该jar包是有原生代码编译而成的,因此在网上找基本是找不到的,我是找了几天都没有找到。找不到怎么办呢,只能自己动手进行编译了。

搜索datetimepicker发现他的地址:\frameworks\opt\datetimepicker,打开一看也是一个工程。现在我们只需要把这个工程编译成jar包即可。

如何把工程编译为jar包呢?工程——>Properties——>android——>Is Liberary打上勾即可。另外需要注意,datetimepicker也需要引用android-support-vX.jar,这里一定要引用高版本的,比如13版的,原因后面说。

有了jar包,我们把jar包引用到DeskClock,就少了一堆错误了。

2.2 android-support-v13.jar

由于之前还发现还却少android-support-v4.jar android-support-v13.jar的包,因此引用一个更高版本的13版的即可。

引用了13的jar包之后,发现错误没有啦,是不是很高兴?

开始编译......

报错:

Unable to execute dex: Multiple dex files define Landroid/support/v13/app/FragmentCompat$FragmentCompatImpl;
Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Landroid/support/v13/app/FragmentCompat$FragmentCompatImpl;

报的错误是多个dex文件定义问题,如图,文件夹中有两个v13。

这是为什么呢?还记得我们在datetimepicker也引用了V13吧,引用的jar工程文件中含有的jar包不用重复引用,要不然会报错。

问题怎么解决?去掉V13这个包,重新编译,一切正常。

第一次编译原生应用就这么easyand愉快的结束了,下次聊点原生闹钟的解析吧。

时间: 2024-12-06 21:38:47

【android原生应用】之闹钟应用搭起篇的相关文章

wex5 教程 之 web网站android原生模式打包

如果有成型的web网站,想做成手机app,如何用wex5来打包成apk呢?比如说百度视频,我想打包成自已的apk安装到手机上,怎么做呢? 官方提供了四种打包模式,都需要提供服务地址,也就是说要有一台服务器来提供服务.我只是要把web地址封装一下,apk打开后跳转到网页就行,显然服务地址是不需要的. 那如果用wex5的页面frame组件加载一个web页面呢? 经测试,这种方法可行,问题是,w页面是wex5自创的页面,不是html的document页面,会出现视频格式不能播放,无falsh插件问题.

Android原生json和fastjson的简单使用

android原生操作json数据 主要是两个类 JSONObject 操作对象     JONSArray操作json数组 对象转json 1 //创建学生对象 2 Student student=new Student(); 3 student.setAge(23); 4 student.setClazz("六年级"); 5 student.setName("王二麻子"); 6 //创建JSONObject 7 JSONObject jsonObject=new

Android进阶(二十七)Android原生扰人烦的布局

Android原生扰人烦的布局 在开发Android应用时,UI布局是一件令人烦恼的事情.下面主要讲解一下Android中的界面布局. 一.线性布局(LinearLayout) 线性布局分为: (1)垂直线性布局: (2)水平线性布局: 针对这两种区别,只是一个属性的区别 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertic

android原生ExpandableListView

android原生可扩展ExpandableListView就是可以伸缩的listView,一条标题下面有多条内容. 这个list的adapter对的数据要求与普通ListView的数据要求也有一些差别,这个list需要有两个数据源 一半需要 List<String> groups 作为group 和一个 Map<String , List<String>> children 作为children,他们最好意义对应 ExpandableListView使用起来和普通的l

android 原生应用、Web应用、混合应用优缺点分析

最近开发几个项目,牵涉到android的几种开发模式.对于原生态开发.web 应用开发以及混合模式开发,本人认为并不是哪一种就是最好的,哪一种就是最差的,这个完全是根据自己的需求,选择一种合适的开发模式.他们同时具备自己的有点,同时也有自身的缺点,我们根据实际情况,取其中的优点,尽量避免掉缺点,才是最好的开发模式.下面,我们就一同看看,这三种开发模式,到底有什么区别. 一.原生应用 (也称本地开发 Native App) 你使用过微软PowerPoint 或者 Word吧?这些可直接在你电脑上运

android原生browser分析(二)--界面篇

我们先看一张浏览器的主界面,上面标示浏览器界面各部分对应的类,这里是以平板上的界面为例.给张图是为了给大家一个直观的感觉. BrowserActivity是整个应用的主界面,在onCreate中创建了Controller对象,Controller对象是整个应用最重要的管理类,这个后面再说. @Override public void onCreate(Bundle icicle) { mController = createController(); } Controller的创建中新建了UI类

React Native Android原生模块开发实战|教程|心得|如何创建React Native Android原生模块

尊重版权,未经授权不得转载 本文出自:贾鹏辉的技术博客(http://blog.csdn.net/fengyuzhengfan/article/details/54691503) 前言 一直想写一下我在React Native原生模块封装方面的一些经验和心得,来分享给大家,但实在抽不开身,今天看了一下日历发现马上就春节了,所以就赶在春节之前将这篇博文写好并发布(其实是两篇:要看iOS篇的点这里<React Native iOS原生模块开发>). 我平时在用React Native开发App时会

Android原生生成JSON与解析JSON

JSON数据是一种轻量级的数据交换格式,在Android中通常应用于客户端与服务器交互之间的数据传输.像现在在网上有很多解析JSON数据的jar包,但是归根到底用的都是Android原生解析JSON数据的方式,所以掌握Android原生解析JSON数据的方法相当重要. 下面分为生成JSON数据和解析JSON数据,所用的包是org.json (1)生成JSON数据方法: 比如要生成一个这样的json文本 { "phone" : ["12345678", "8

Android 原生 Android ActionBar Tab (滑动)导航

本文内容 环境 项目结构 演示一:ActionBar Tab 导航 演示二:ActionBar Tab 带滑动导航 本文演示 Tab 导航.第一个演示,是基本的 Tab 导航,第二个是带滑动的 Tab 导航. 另外,个人觉得,通过本例能够知道,如何创建初始化 Fragment,并把 Fragment 放入"容器"中.容器既可以是 LinearLayout.RelativeLayout,也可以是 ViewGroup.这类似初始化 Web 应用程序页面的实现,困扰了我很久,不解决这个问题,