熊文剑+吴玫
摘 要:法律查询是人们日常生活中的一大刚需,昂贵的法律咨询费却总是让人望而却步。设计实现一款基于Android系统的法律查询软件,使用户能够在智能设备上通过该软件免费、快速地查询与法律相关的各类资讯,随时随地即时获取所需信息,解决相应问题,满足用户快捷、方便地查询法律信息的需求,减少不必要的资金消耗,从而缓解人们对于法律查询诉求的压力。
关键词:智能设备;Android系统;法律查询
DOIDOI:10.11907/rjdk.162630
中图分类号:TP319
文献标识码:A 文章编号:1672-7800(2017)007-0110-03
0 引言
随着互联网迅速发展和智能设备的快速普及,人们越来越倾向于通过手机等智能设备解决各种问题[1]。过去,当人们遇到法律纠纷需要查询法律事务时,通常会购买法律书籍或者寻找法律事务所进行面对面的法律咨询,这些方法费时费力,可能最终依然难以获得满意的解决方案。
目前,市面上已经有一些类似的法律查询软件,但很多软件并不提供任何法律服务,只是作为客户和律师的一个联系平台,当用户遇到小的事务纠纷需要查询相关案例和法规时却找不到途径,只能通过付费的方式寻找律师进行咨询。鉴于此,本文设计开发一种基于Android系统的法律查询软件,直接向用户提供更加详细、直观、免费的法律信息以便查阅,减少了额外的付费开销,使其能够随时随地、快速地找到处理方法,自行解决问题,同时考虑到用户可能需要反复查阅曾浏览过的信息,软件还加入了浏览记录功能,使用户无需重复查找资料便可直接浏览。
1 核心功能设计
本法律查询软件是一款运行在Android系统设备上的用于查询法律相关信息的软件,Android系统[2]本身受到大量厂商和用户的青睐,拥有更好的市场潜力,该软件包括法律常识、法规、文书、案例等各类知识,使得用户能够有针对性地查看所需资料,新加入的记录功能让用户可随时对曾阅览过的信息进行回看。
1.1 设计思想
(1) 分类设计能够广泛覆盖各类法律知识,包含了常见的法律知识类型,对于用户的各类查询需求,提供了对应的法律查询类目,使他们更易找到自己所需的法律资料。
(2) 存储设计与数据库相结合,将用户的浏览信息进行记录并存储到数据库中,使得用户需要再次浏览相应信息时,无需重复查找便可直接阅览,为用户节省更多的时间。
(3)定时刷新设计保证了信息的时效性,即时动态抓取网上的法律信息,时刻与最新的法律法规相同步,使用户能在任何时候都能获得最具参考价值的资料,更好地解决相关问题。
1.2 法律资料查询设计
法律资料查询过程设计了多种不同法律类别,根据自己的实际情况,用户可以选择性地搜索,若无法找到相关内容,可返回选择新的类别再次查找。程序具有即时刷新功能,能够保证资料的时效性,同时会记录相关信息,用户再次登录时无需查找便可直接查看。法律资料查询流程如图1所示。
1.3 历史记录浏览设计
历史记录包含用户浏览过的资料信息,会将浏览过的资料以列表的形式呈现到设备界面,為用户提供快捷的查看方法,考虑到历史信息过多可能会让界面产生混乱,同时也提供了清除信息的相应方法,历史记录浏览流程如图2所示。
1.4 相关技术
(1)Jsoup技术。Jsoup是一款免费、开源的HTML解析器,它能够轻易地解析、提取和修改HTML元素,相较于过去的htmlparser解析器,jsoup并不会对HTML元素定义一个对应的类,它会提供给用户一些简洁的检索方式自行查找这些元素,故而能够精简项目,减少程序对存储空间的需求;jsoup有一套属于完全自己的API,它能够实现类似jquery的CSS选择器功能[3],通过对选择器基本语法的组合运用能够以更少的代码轻易地提取出关键的数据元素,同时它还提供了HTML文档清理功能,对HTML文档进行过滤,能够避免用户通过脚本破坏页面布局所产生的影响。在HTML解析过程中,其能够提供更为高效的使用方法。
(2)SQLite技术。SQLite是一款轻量级、跨平台的关系型数据库,相较于Mysql等数据库软件的C/S模式,它是进程内的数据引擎,无需安装、配置相应的服务程序,无需任何中间接口或媒介[4],应用程序就可直接访问SQLite数据库,故而能够拥有更快的处理速度,其能够适应不同配置的软件环境,基于其轻量级的特性,它对内存的占用也非常小,更易于移植到嵌入式设备,非常适合Android、Windows Mobile等嵌入式系统。
2 核心功能实现
2.1 软件主要界面实现
法律查询软件主要由8个界面页组成,分别为主界面、民事诉讼、民法总类、文书模板、案例分析、法律常识、最新法规、法律百科、历史记录。各界面分属于不同的Activity,以相对布局的方式实现对不同规格设备的自适应,通过对各图标的点击和监听来实现界面转换,并用浮框对将要打开的界面进行提示,其在Java中的关键代码如下所示:
public void onItemClick(AdapterView<?>parent,View view,int position,long rowid){
HashMap
String itemText=(String)item.get("itemText");
Object object=item.get("itemImage");
Toast.makeText(HomeActivity.this,itemText,Toast.LENGTH_SHORT).show();
final Intent it
2.2 数据抓取和解析实现
数据的抓取和解析采用了Httpclient和Jsoup技术。Httpclient[5]是一款功能丰富的支持HTTP协议的编程工具包,其具有自动转向和强扩展性的优点,使抓取的HTML信息更易理解。Jsoup能快速对网页中的HTML信息进行解析,将所需的信息逐个提取并存放到相应的类或数据库表中,最后再以合适的布局呈现在用户的设备界面上。其关键代码如下所示:
(1) 对网页HTML信息的抓取。
HttpClient httpclient = new DefaultHttpClient();
Intent intent = getIntent();
URL_EOL = intent.getExtras().getString("url"); //网页代码获取
HttpPost httppost = new HttpPost(URL_EOL);
HttpResponse response = httpclient.execute(httppost);
String Res = EntityUtils.toString(response.getEntity(),"UTF-8")
(2)对HTML信息进行解析。
List
Document doc = Jsoup.parse(HTMLCode);
Elements lis = doc.getElementsByTag("li");
for (Element li : lis) {
String newstitle = li.getElementsByTag("a").first().text(); //关键元素获取
String newsurl = li.getElementsByTag("a").attr("href");
newsurl = newsurl.replace("/info",absherf);
News newst = new News();
newst.setNewsTitle(newstitle);
newst.setNewsUrl(newsurl);
newsList.add(newst);
}
2.3 历史记录实现
历史记录运用了轻量级的SQLite数据库,在用户浏览感兴趣的资料时,程序能够自动记录资料的标题、类型、网址等各类信息并将数据存储到相应的数据库表中,然后在历史记录界面中以列表的形式呈现出来,为用户提供了更为方便的查询方式,其关键代码如下所示:
(1)实现对浏览信息的存储。
History history = new History();
history.setHistoryActivity("Falvnewset");
history.setHistoryName(NewsList.get(arg2).getNewsTitle());
history.setHistoryUrl(NewsList.get(arg2).getNewsUrl());
historyDB.saveHistory(history);
(2)實现对浏览信息的提取和显示。
historyList = historyDB.loadHistory();
dataList.clear();
for(History history : historyList){
dataList.add(0,history.getHistoryName());
}
adapter.notifyDataSetChanged();
History_list.setSelection(0)
3 软件模拟与测试
软件的部分实现效果如图3所示,模拟是在Android4.4.2版本的真机上进行的,不同的法律类型能够让用户更为直观地选择所需法律资料。测试表明,本软件能够快速地抓取并显示法律相关条例信息,经过修改后的布局自适应不同规格的智能设备并以合适界面进行显示,通过历史记录的查找,明显加快了对过往浏览信息的搜寻速度。
4 结语
本文基于Android系统,介绍了法律查询APP设计与开发的全过程,运行于移动设备的法律查询软件尽可能多地涵盖用户所需法律相关知识,并考虑到用户可能需要反复查看相同资料的需求,提供了方便、快捷的查看方法,尽最大可能地满足用户在移动端对法律查询需求的使用体验。目前,智能设备上的法律查询功能和体验尚有不少待完善之处,需后续进一步研究充实。
参考文献:
[1]董青梅.互联网时代对法律方法的影响[J].甘肃理论学刊,2015(5):5-9.
[2]郭霖.第一行代码—Android[M].北京:人民邮电出版社,2014.
[3]刘柄成.使用jsoup 对HTML文档进行解析和操作[EB/OL].https://www.ibm.com/developerworks/cn/java/j-lo-jsouphtml.
[4]SQLite数据库优缺点分析[EB/OL].http://blog.knowsky.com/185331.htm.
[5]姚佳伟.HttpClient使用详解[EB/OL].http://blog.csdn.net/fang323619/article/details/43017553.