1在AndroidStudio中导入Library项目 1 启动AndroidStudio后,打开你需要接收Library的项目。比如有两个项目,项目A,和Library项目B,那么打开项目A。图中所示为项目的结构图,点击右上角的File菜单。 2 在下拉菜单中依次找到New— —Import Module,点击打开项目导入窗口。注意导入的是Module而不是Project,如果是Project的话AndroidStudio会自动打开一个新的窗口编辑,那样的话就是不Library了。 3 在打开的窗口中点击右侧的""浏览窗口,在文件夹窗口中找到你要导入的Library项目的位置,选择后点击底部的OK按钮导入。 4 导入窗口中显示了该Module(项目)的详细信息,点击Finish完成导入。需要注意的是导入到AndoridStudio项目中的Library也必须是AndroidStudio项目,不能是Eclipse项目,如果是Eclipse项目的话,需要选择导出AndroidStudio项目。 5 在项目首页中选择Project标签,可以看到项目的文件结构图中多出了我们刚才导入的项目。Library的导入就完成了,接下来的步骤中需要把这个Library项目添加到原项目中,才能正常的引用Librara项目中的内容。 END 2 把Library项目添加到源项目中 点击顶部左上角的File菜单,在出现的下拉菜单中找到Project Structure,点击进入。 在窗口左侧选择原始的项目后,点击右侧的Dependencies(依赖项)。可以看到项目当前引用的jar包等信息。 点击右侧的“+”添加按钮,在下拉菜单中找到Module Dependency(项目依赖),点击打开项目选择窗口。 选择前面步骤中导入的Library项目后,点击OK按钮导入到原始项目中。 原始项目的依赖项中就出现了导入的Libray项目,这时在项目中就能正确引用Library项目中的内容了,点击底部的OK按钮完成添加。 出现是否更新CVS文件的提示窗口的话,点击Yes进行进行更新和确认。 项目进入到Gradle自动构建的环节。构建完成后点击底部的Messages,选中Gradle Build。在里面提示了BUILD SUCCESSFUL,说明项目构建完成。这时Library项目就导入到原始项目完毕,可以在项目中正常引用Library项目中的内容了。
android studio工程的默认放在 C:\Users\Administrator\AndroidstudioProjects。
其中Administrator上填自己电脑的用户名
修改方法很简单,在下次创建新的项目时,选择其他路径即可
扩展资料国家顶级域名
(national top-level domainnames,简称nTLDs),目前200多个国家都按照ISO3166国家代码分配了顶级域名,例如中国是cn,美国是us,日本是jp等;
国际顶级域名
(international top-level domain names,简称iTDs),例如表示工商企业的 com,表示网络提供商的 net,表示非盈利组织的 org等。
参考资料:
Android系统源码都在http://androidgitkernelorg/网址下,其中那个系统app都在platform/packages/apps结构下。
在刚才的Git的shell命名行窗口中输入下面的命名:
git clone git://androidgitkernelorg/platform/packages/apps/Luancher2git
你就可以在你的msysGit安装目录的git下(~\msysgit\msysgit\git)看到Luancher工程文件夹了。
然后打开~\msysgit\msysgit\git\Luancher2文件夹,就可以看到Android的Luancher系统源码工程了。
对于其他的app系统源码的获取方法和上述的Luancher相同,只是命名行后的参数不同。
git clone git://androidgitkernelorg/需下载源码的app所在的位置。
从项目中的buildgradle,罗列的知识点。
相当于C中的函数指针,或者Java中的引用。
对比有什么不同,Groovy中,入参只有一个并且是个闭包时,可省略圆角括号;入参最后一个参数为闭包时,该闭包可以单独用花括号包裹并放在圆括号外面。这是语法上的不同。
创建task的过程
1 Task task(Map<String, > args, String name, Closure configureClosure); 创建指定类型的Task,也就是orggradleapitasksDelete
2 调用configureClosure闭包,执行delete函数,入参是rootProjectbuildDir。到此cleantask实例创建、初始化成功。
3 执行/gradlew clean。执行clean的action。比如被@TaskAction标注的函数。
练习,猜一下下面日志的输出顺序
修改buildgradle 后点击sync now刷新,以下为输出log顺序
层级关系是这样的gradle -- rootProject -- subProject -- task -- action
生成的taskGraph长什么样子呢?调用/gradlew assembleDebug 后发生了什么
思路:分三步
找到Apk依赖的所有的Jar包 和 Class文件 -----》 解压Jar解析Class内容 ----》 输出文件名。
Class文件格式
转化为Dex之前,可插入Task,输入为当前apk依赖的所有jar和class。自定义一个Transform 或者在 app:compileDebugJavaWithJavac 后面
涉及概念点extension、task、plugin入口、maven管理
把每种技能比喻为一把刀,平时我们用的是菜刀,现在一块大骨头面前想吃牛骨髓,怎么办?不知道大家喜不喜欢吃?就需要一把砍刀。工作中你有多少把刀?
多了一把刀,多了一种解决问题的方式和思路,比如我们用的三方源码库实现方式的过程从 APO -> APT -> Gradle,不断迁移,也更强大,也是赋能量、更自由的过程。
android上查阅word类型文档的方式主要有几种,下载诸如wps,office等应用,用户可以直接打开需要查看的word文档,对于应用开发者来说,如何在自己的应用中集成word文档查阅功能,使自己的app不受限于第三方应用有没有安装,有时候还是需要考虑的。
集成app阅读word功能也可以通过几种方式实现,例如购买专门的sdk包,像Aspose等(money啊)或者服务器端处理成或者html,然后android端去请求访问等方式。对于大部分个人开发者而言,这两种方式就显得比较重量级了。
下面介绍两种专门解析docx文件的方式:docx4j 以及poi
Docx4j
github地址:https://githubcom/plutext/AndroidDocxToHtml
这个是官网demo,基本可以直接使用,解析出来的格式比较全,样式也比较接近原文档,就是解析速度令人不敢恭维,手机上测试的话,一般一份儿docx文档都需要30s以上甚至更多,有时候测试文档明明就只有几十k大小而已,对于比较大,比较复杂的文档,时间就更是让人崩溃。解析速度不是令人满意。
解析测试中遇到的bug
1表格丢失,内容丢失:内嵌表格(表格中还有表格的这种)的内容和样式会有部分丢失现象
2表格(又是我?)样式:假如文档中的表格在word文档中排版时超出了该文档的边界线,你会发现超出边界的内容又不见了
3目录乱码:如果文档中有目录,目录会被加上一些超链接,需要手工处理去掉
4无法解析:有一些格式的无法解析,比如EMF,WMF这种类型的
5批注无法显示:目前没有找到批注显示的地方,暂且算丢失吧,后面在试试
6。。。其它暂时还没被发现的问题
POI
poi是apache的一个开源项目,不多说,直接上官网去下载就可以
官网地址:http://poiapacheorg/
如果你是android studio用户:那就很简单了
只需要引入依赖(版本号不一定哦,gradle会自己把相关依赖包下载到位):
compile 'fropensagresxdocreport:orgapachepoixwpfconverterxhtml:105'
那如果你是eclipse用户(伙计,赶紧用studio吧)
需要手工引入以下jar包,包括:
poi , poi-ooxml , ooxml-schema,orgapachepoixwpfconverterxhtml,orgapachepoixwpfconvertercore
实现代码如下
{
InputStream is = new FileInputStream(file);
XWPFDocument docx = new
XWPFDocument(is);
OutputStream os = new ByteArrayOutputStream();
String imgDesPath = "/sdcard/img";
File imgFile = new File("/sdcard/img");
thisbaseUrl = thisgetDir("image", ContextMODE_PRIVATE)toURL()toString();
if (!imgFileexists()) {
filemkdirs();
}
poi解析的问题
速度比docx4j要稍快一点,会有文档内容解析不全样式丢失的情况
流程
调用接口将docx转化为html,然后app中通过webview加载该html即可显示
转化代码如下(我就想问下,这代码格式到底该怎么调啊~好烦躁):
try {
InputStream is = new FileInputStream(file);
XWPFDocument docx = new
XWPFDocument(is);
OutputStream os = new ByteArrayOutputStream();
String imgDesPath = "/sdcard/img";
File imgFile = new File("/sdcard/img");
thisbaseUrl = thisgetDir("image", ContextMODE_PRIVATE)toURL()toString();
if (!imgFileexists()) {
filemkdirs();
}
XHTMLOptions options = XHTMLOptionscreate()URIResolver(new BasicURIResolver(imgDesPath));
optionssetExtractor(new FileImageExtractor(imgFile));
optionssetIgnoreStylesIfUnused(false);
optionssetFragment(true);
XHTMLConvertergetInstance()convert(docx, os, options);
oswrite("/sdcard/xxx/html文件")
} catch (Exception e) {
Logd(TAG, "catch " + egetMessage());
}
webview 里面直接load 上面生成的html文件就可以了
欢迎分享,转载请注明来源:品搜搜测评网