关于pdfbox在android平台中运行出错的原因分析
16lz
2021-01-25
最近在使用pdfbox时发现了在java项目里边能正常工作,但到了Android中就总是出现问题,
经过不断调试和高人指点,发现原来pdfbox中某些类引用了java的AWT,而android上并没有得到支持。(java.awt.font除外)
至于为什么Android上并不支持Java的AWT?其实是google另外写了一些类来实现图像化
AWT与Android功能相似的实现方式:
既然Android用别的类实现了java中的awt,那么可不可以利用Android的相似类重写awt呢?
理论上是可以的,有人尝试将Javaapplet移植到android上去,搭建好环境,将代码导进后发现大量的awt方面的绘图代码不能编译。于是就用android.graphics来替代awt的调用,改来改去发现这是很机械的事情,就用android.graphics来实现awt的几个基本功能
于是总结出如下需要实现的class:
ColorFontFontMetricsGraphicsRectangle
不过随着尝试的进行,又发现如下的class也需要实现:
BasicStrokeGraphics2DStrokeGradientPaintRoundRectangle2DMenuItemPopupMenu
事情越来越复杂,究竟最后能否行得通?研究进行中。
其实已经有人在做同样的努力了,http://code.google.com/p/awt-android-compat/这是一个将awt移植到android上面的开源项目,有兴趣可以深究一下
更多相关文章
- 没有一行代码,「2020 新冠肺炎记忆」这个项目却登上了 GitHub 中
- Android(安卓)基于Netty的消息推送方案之概念和工作原理(二)
- android实时录制视频h263编码通过rtp打包udp发送到服务器
- Android(安卓)操作系统获取Root权限 原理详细解析
- Android(安卓)JNI 调用
- 关于Android混淆的开源框架Mess的学习与分析
- [Android] AOSP 开发并刷入Pixel
- 从Java类加载初始化到Android热修复
- 5个顶级的Android开发库