熊文劍+吳玫
摘 要:法律查詢是人們?nèi)粘I钪械囊淮髣傂?,昂貴的法律咨詢費(fèi)卻總是讓人望而卻步。設(shè)計(jì)實(shí)現(xiàn)一款基于Android系統(tǒng)的法律查詢軟件,使用戶能夠在智能設(shè)備上通過該軟件免費(fèi)、快速地查詢與法律相關(guān)的各類資訊,隨時(shí)隨地即時(shí)獲取所需信息,解決相應(yīng)問題,滿足用戶快捷、方便地查詢法律信息的需求,減少不必要的資金消耗,從而緩解人們對于法律查詢訴求的壓力。
關(guān)鍵詞:智能設(shè)備;Android系統(tǒng);法律查詢
DOIDOI:10.11907/rjdk.162630
中圖分類號:TP319
文獻(xiàn)標(biāo)識碼:A 文章編號:1672-7800(2017)007-0110-03
0 引言
隨著互聯(lián)網(wǎng)迅速發(fā)展和智能設(shè)備的快速普及,人們越來越傾向于通過手機(jī)等智能設(shè)備解決各種問題[1]。過去,當(dāng)人們遇到法律糾紛需要查詢法律事務(wù)時(shí),通常會購買法律書籍或者尋找法律事務(wù)所進(jìn)行面對面的法律咨詢,這些方法費(fèi)時(shí)費(fèi)力,可能最終依然難以獲得滿意的解決方案。
目前,市面上已經(jīng)有一些類似的法律查詢軟件,但很多軟件并不提供任何法律服務(wù),只是作為客戶和律師的一個(gè)聯(lián)系平臺,當(dāng)用戶遇到小的事務(wù)糾紛需要查詢相關(guān)案例和法規(guī)時(shí)卻找不到途徑,只能通過付費(fèi)的方式尋找律師進(jìn)行咨詢。鑒于此,本文設(shè)計(jì)開發(fā)一種基于Android系統(tǒng)的法律查詢軟件,直接向用戶提供更加詳細(xì)、直觀、免費(fèi)的法律信息以便查閱,減少了額外的付費(fèi)開銷,使其能夠隨時(shí)隨地、快速地找到處理方法,自行解決問題,同時(shí)考慮到用戶可能需要反復(fù)查閱曾瀏覽過的信息,軟件還加入了瀏覽記錄功能,使用戶無需重復(fù)查找資料便可直接瀏覽。
1 核心功能設(shè)計(jì)
本法律查詢軟件是一款運(yùn)行在Android系統(tǒng)設(shè)備上的用于查詢法律相關(guān)信息的軟件,Android系統(tǒng)[2]本身受到大量廠商和用戶的青睞,擁有更好的市場潛力,該軟件包括法律常識、法規(guī)、文書、案例等各類知識,使得用戶能夠有針對性地查看所需資料,新加入的記錄功能讓用戶可隨時(shí)對曾閱覽過的信息進(jìn)行回看。
1.1 設(shè)計(jì)思想
(1) 分類設(shè)計(jì)能夠廣泛覆蓋各類法律知識,包含了常見的法律知識類型,對于用戶的各類查詢需求,提供了對應(yīng)的法律查詢類目,使他們更易找到自己所需的法律資料。
(2) 存儲設(shè)計(jì)與數(shù)據(jù)庫相結(jié)合,將用戶的瀏覽信息進(jìn)行記錄并存儲到數(shù)據(jù)庫中,使得用戶需要再次瀏覽相應(yīng)信息時(shí),無需重復(fù)查找便可直接閱覽,為用戶節(jié)省更多的時(shí)間。
(3)定時(shí)刷新設(shè)計(jì)保證了信息的時(shí)效性,即時(shí)動態(tài)抓取網(wǎng)上的法律信息,時(shí)刻與最新的法律法規(guī)相同步,使用戶能在任何時(shí)候都能獲得最具參考價(jià)值的資料,更好地解決相關(guān)問題。
1.2 法律資料查詢設(shè)計(jì)
法律資料查詢過程設(shè)計(jì)了多種不同法律類別,根據(jù)自己的實(shí)際情況,用戶可以選擇性地搜索,若無法找到相關(guān)內(nèi)容,可返回選擇新的類別再次查找。程序具有即時(shí)刷新功能,能夠保證資料的時(shí)效性,同時(shí)會記錄相關(guān)信息,用戶再次登錄時(shí)無需查找便可直接查看。法律資料查詢流程如圖1所示。
1.3 歷史記錄瀏覽設(shè)計(jì)
歷史記錄包含用戶瀏覽過的資料信息,會將瀏覽過的資料以列表的形式呈現(xiàn)到設(shè)備界面,為用戶提供快捷的查看方法,考慮到歷史信息過多可能會讓界面產(chǎn)生混亂,同時(shí)也提供了清除信息的相應(yīng)方法,歷史記錄瀏覽流程如圖2所示。
1.4 相關(guān)技術(shù)
(1)Jsoup技術(shù)。Jsoup是一款免費(fèi)、開源的HTML解析器,它能夠輕易地解析、提取和修改HTML元素,相較于過去的htmlparser解析器,jsoup并不會對HTML元素定義一個(gè)對應(yīng)的類,它會提供給用戶一些簡潔的檢索方式自行查找這些元素,故而能夠精簡項(xiàng)目,減少程序?qū)Υ鎯臻g的需求;jsoup有一套屬于完全自己的API,它能夠?qū)崿F(xiàn)類似jquery的CSS選擇器功能[3],通過對選擇器基本語法的組合運(yùn)用能夠以更少的代碼輕易地提取出關(guān)鍵的數(shù)據(jù)元素,同時(shí)它還提供了HTML文檔清理功能,對HTML文檔進(jìn)行過濾,能夠避免用戶通過腳本破壞頁面布局所產(chǎn)生的影響。在HTML解析過程中,其能夠提供更為高效的使用方法。
(2)SQLite技術(shù)。SQLite是一款輕量級、跨平臺的關(guān)系型數(shù)據(jù)庫,相較于Mysql等數(shù)據(jù)庫軟件的C/S模式,它是進(jìn)程內(nèi)的數(shù)據(jù)引擎,無需安裝、配置相應(yīng)的服務(wù)程序,無需任何中間接口或媒介[4],應(yīng)用程序就可直接訪問SQLite數(shù)據(jù)庫,故而能夠擁有更快的處理速度,其能夠適應(yīng)不同配置的軟件環(huán)境,基于其輕量級的特性,它對內(nèi)存的占用也非常小,更易于移植到嵌入式設(shè)備,非常適合Android、Windows Mobile等嵌入式系統(tǒng)。
2 核心功能實(shí)現(xiàn)
2.1 軟件主要界面實(shí)現(xiàn)
法律查詢軟件主要由8個(gè)界面頁組成,分別為主界面、民事訴訟、民法總類、文書模板、案例分析、法律常識、最新法規(guī)、法律百科、歷史記錄。各界面分屬于不同的Activity,以相對布局的方式實(shí)現(xiàn)對不同規(guī)格設(shè)備的自適應(yīng),通過對各圖標(biāo)的點(diǎn)擊和監(jiān)聽來實(shí)現(xiàn)界面轉(zhuǎn)換,并用浮框?qū)⒁蜷_的界面進(jìn)行提示,其在Java中的關(guān)鍵代碼如下所示:
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 數(shù)據(jù)抓取和解析實(shí)現(xiàn)
數(shù)據(jù)的抓取和解析采用了Httpclient和Jsoup技術(shù)。Httpclient[5]是一款功能豐富的支持HTTP協(xié)議的編程工具包,其具有自動轉(zhuǎn)向和強(qiáng)擴(kuò)展性的優(yōu)點(diǎn),使抓取的HTML信息更易理解。Jsoup能快速對網(wǎng)頁中的HTML信息進(jìn)行解析,將所需的信息逐個(gè)提取并存放到相應(yīng)的類或數(shù)據(jù)庫表中,最后再以合適的布局呈現(xiàn)在用戶的設(shè)備界面上。其關(guān)鍵代碼如下所示:
(1) 對網(wǎng)頁HTML信息的抓取。
HttpClient httpclient = new DefaultHttpClient();
Intent intent = getIntent();
URL_EOL = intent.getExtras().getString("url"); //網(wǎng)頁代碼獲取
HttpPost httppost = new HttpPost(URL_EOL);
HttpResponse response = httpclient.execute(httppost);
String Res = EntityUtils.toString(response.getEntity(),"UTF-8")
(2)對HTML信息進(jìn)行解析。
List
Document doc = Jsoup.parse(HTMLCode);
Elements lis = doc.getElementsByTag("li");
for (Element li : lis) {
String newstitle = li.getElementsByTag("a").first().text(); //關(guān)鍵元素獲取
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 歷史記錄實(shí)現(xiàn)
歷史記錄運(yùn)用了輕量級的SQLite數(shù)據(jù)庫,在用戶瀏覽感興趣的資料時(shí),程序能夠自動記錄資料的標(biāo)題、類型、網(wǎng)址等各類信息并將數(shù)據(jù)存儲到相應(yīng)的數(shù)據(jù)庫表中,然后在歷史記錄界面中以列表的形式呈現(xiàn)出來,為用戶提供了更為方便的查詢方式,其關(guān)鍵代碼如下所示:
(1)實(shí)現(xiàn)對瀏覽信息的存儲。
History history = new History();
history.setHistoryActivity("Falvnewset");
history.setHistoryName(NewsList.get(arg2).getNewsTitle());
history.setHistoryUrl(NewsList.get(arg2).getNewsUrl());
historyDB.saveHistory(history);
(2)實(shí)現(xiàn)對瀏覽信息的提取和顯示。
historyList = historyDB.loadHistory();
dataList.clear();
for(History history : historyList){
dataList.add(0,history.getHistoryName());
}
adapter.notifyDataSetChanged();
History_list.setSelection(0)
3 軟件模擬與測試
軟件的部分實(shí)現(xiàn)效果如圖3所示,模擬是在Android4.4.2版本的真機(jī)上進(jìn)行的,不同的法律類型能夠讓用戶更為直觀地選擇所需法律資料。測試表明,本軟件能夠快速地抓取并顯示法律相關(guān)條例信息,經(jīng)過修改后的布局自適應(yīng)不同規(guī)格的智能設(shè)備并以合適界面進(jìn)行顯示,通過歷史記錄的查找,明顯加快了對過往瀏覽信息的搜尋速度。
4 結(jié)語
本文基于Android系統(tǒng),介紹了法律查詢APP設(shè)計(jì)與開發(fā)的全過程,運(yùn)行于移動設(shè)備的法律查詢軟件盡可能多地涵蓋用戶所需法律相關(guān)知識,并考慮到用戶可能需要反復(fù)查看相同資料的需求,提供了方便、快捷的查看方法,盡最大可能地滿足用戶在移動端對法律查詢需求的使用體驗(yàn)。目前,智能設(shè)備上的法律查詢功能和體驗(yàn)尚有不少待完善之處,需后續(xù)進(jìn)一步研究充實(shí)。
參考文獻(xiàn):
[1]董青梅.互聯(lián)網(wǎng)時(shí)代對法律方法的影響[J].甘肅理論學(xué)刊,2015(5):5-9.
[2]郭霖.第一行代碼—Android[M].北京:人民郵電出版社,2014.
[3]劉柄成.使用jsoup 對HTML文檔進(jìn)行解析和操作[EB/OL].https://www.ibm.com/developerworks/cn/java/j-lo-jsouphtml.
[4]SQLite數(shù)據(jù)庫優(yōu)缺點(diǎn)分析[EB/OL].http://blog.knowsky.com/185331.htm.
[5]姚佳偉.HttpClient使用詳解[EB/OL].http://blog.csdn.net/fang323619/article/details/43017553.